指定類外鍵有註釋(DataAnnotation)和FluentAPI兩種方式,數據庫
目前掌握的知識咱們先把DataAnnotation可用的四種方式總結以下spa
第一種方法:code
//1-指定導航屬性,會自動生成外鍵,命名規則爲:「表名_主鍵名」 //這種方式兼容性很是好,稍後須要總結的關於一個類中出現兩個或者多個相同類屬性的時候就使用的這種方式,而下面的第三種方式就不成功,會出現錯誤,具體細節在下一篇博客中介紹 public class User { //[Key] public int UserID { get; set; } public string Name { get; set; } } public class UserExtInfo { public int UserExtInfoID { get; set; } //1-生成外鍵:User_UserID public virtual User User { get; set; } }
第二種方法:blog
//2-默認狀況下與導航屬性的主鍵名稱相同的字段會自動被標記爲外鍵, public class User { public int UserID { get; set; } public string Name { get; set; } } public class UserExtInfo { //2-生成外鍵:UserID public int UserID { get; set; } public virtual User User { get; set; } } }
第三種方法:可指定生成的數據庫中的列名。get
//3-經過[ForeignKey]標記指定實體類的屬性爲外鍵, public class User { public int UserID { get; set; } public string Name { get; set; } } public class UserExtInfo { //3-生成外鍵:F_UserID public int F_UserID { get; set; } [ForeignKey("F_UserID")] public virtual User User { get; set; } }
第四種方法:可指定生成的數據庫中的列名。博客
//方式2的升級版,與導航屬性的主鍵名稱相同的字段會自動被標記爲外鍵,而後指定字段對應的數據庫中的列名 public class User { public int UserID { get; set; } public string Name { get; set; } } public class UserExtInfo { //4-生成外鍵:F_UserID [Column("F_UserID")] public int UserID { get; set; } public virtual User User { get; set; } }
FluentAPI的方法等待補充----------------------string