在過去的幾天中,我一直在重構和現有的使用C#編寫的應用程序,以使用實體框架而不是我自定義的數據訪問層。一切都很順利,直到遇到特定的POCO。如何在現有數據庫和Poco結構中使用實體框架
這個POCO有6個屬性,其中4個是基本類型,但是最後2個給我麻煩,因爲它們是其他現有的POCO。這給我帶來麻煩的原因是因爲使用Linq to Entity在嘗試使用Entity Framework訪問我的數據庫時無法正常工作。
給出的錯誤:「執行命令定義時發生錯誤,請參閱內部異常以瞭解詳細信息。」 的InnerException: 「的InnerException = {」 無效的列名稱Course_CourseId'\ r \ n無效的列名稱Student_StudentId'\ r \ n無效的列名稱Staff_StaffId'。 「}」
我的數據庫結構是:
UniversityCatalog
Table: Courses
-Field: CourseId (Guid)
-Field: CourseName (String)
-Field: CourseNumber (String)
-Field: Comments (String)
-Field: CreditHours (int)
-Field: CourseTypeId (int) (ForeignKey: CourseTypes.CourseTypeId)
Table: CourseTypes
-Field: CourseTypeId (int)
-Field: CourseTypeName (String)
Table: Staffs
-Field: StaffId (Guid)
-Field: FirstName (String)
-Field: LastName (String)
-Field: EmployeeId (int)
Table: Students
-Field: StudentId (Guid)
-Field: FirstName (String)
-Field: LastName (String)
-Field: Grade (String)
Table: CourseOfferings
-Field: CourseOfferingId (Guid)
-Field: CourseId (Guid) (ForeignKey: Courses.CourseId)
-Field: StaffId (Guid) (ForeignKey: Staffs.StaffId)
-Field: Start Time (String)
-Field: End Time (String)
-Field: DayOfWeek (String)
Table: CourseRegistrations
-Field: CourseOfferingId (ForeignKey: CourseOfferings.CourseOfferingId)
-Field: StudentId (ForeignKey: Students.StudentId)
的POCO我對CourseOfferings表是:
public class CourseOffering
{
public Guid CourseOfferingId { get; set; }
public String DayOfWeek { get; set; }
public String StartTime { get; set; }
public String EndTime { get; set; }
public Course Course { get; set; }
public Student Student { get; set; }
public Staff Staff { get; set; }
}
我懷疑我必須做我的背景文件中的一些自定義映射,但是我不知道我會做。任何提示或指針會幫助我很大!謝謝!
(另外這裏是我的背景文件:
class GatewayContext: DbContext
{
public DbSet<Course> Course { get; set; }
public DbSet<CourseType> CourseTypes { get; set; }
public DbSet<CourseOffering> CourseOfferings { get; set; }
public DbSet<Staff> Staff { get; set; }
public DbSet<Student> Students { get; set; }
}
注:這只是一個模擬的項目中使用這些技術
「無法正常工作」沒有幫助。請張貼實際的編譯錯誤消息/運行時異常。 – ken2k
是的,抱歉,我忘了包括這一點。我用錯誤消息和異常更新了問題。 –