[英]Creating model from existing table in Entity Framework
我有多對多的學生課程,通過使用虛擬館藏清單我意識到了這一點,並得到了下一個生成的遷移代碼:
CreateTable(
"dbo.PersonCourses",
c => new
{
Person_Id = c.Int(nullable: false),
Course_Id = c.Int(nullable: false),
})
.PrimaryKey(t => new { t.Person_Id, t.Course_Id })
.ForeignKey("dbo.People", t => t.Person_Id, cascadeDelete: true)
.ForeignKey("dbo.Courses", t => t.Course_Id, cascadeDelete: true)
.Index(t => t.Person_Id)
.Index(t => t.Course_Id);
現在我想將表PersonCourses映射到一些C#類,並且我寫了
[Table("PersonCourses")]
public class PersonCourses
{
[ForeignKey("Person")]
[Required]
public int PersonId { get; set; }
[ForeignKey("Course")]
[Required]
public int CourseId { get; set; }
}
但失敗,顯示:“ PersonCourses”未定義密鑰。為此EntityType定義密鑰。
您應該添加屬性[Key]屬性PersonCoursesId:
public partial class Category
{
[Key]
public int PersonCoursesId { get; set; }
[ForeignKey("Person")]
public int PersonId { get; set; }
[ForeignKey("Course")]
public int CourseId { get; set; }
}
問題是EF僅在知道表的主鍵時才能工作。 默認情況下,EF識別為名稱為ID的主鍵屬性。 如果您的表有另一個主鍵,則可以用屬性[Key]對其進行標記,或者使用流暢的配置來設置Key。
希望這可以幫助。
您需要在組成主鍵的屬性上方的[Key]屬性。 對於復合主鍵,您還需要指定列順序。 請參閱https://msdn.microsoft.com/zh-cn/data/jj591583.aspx#Composite
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.