Code First 指定外键名称
2015-09-30 20:36
288 查看
指定类外键有注释(DataAnnotation)和FluentAPI两种方式,
目前掌握的知识我们先把DataAnnotation可用的四种方式总结如下
第一种方法:
第二种方法:
第三种方法:可指定生成的数据库中的列名。
第四种方法:可指定生成的数据库中的列名。
FluentAPI的方法等待补充----------------------
目前掌握的知识我们先把DataAnnotation可用的四种方式总结如下
第一种方法:
//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; } }
第二种方法:
//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; } } }
第三种方法:可指定生成的数据库中的列名。
//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的方法等待补充----------------------
相关文章推荐
- 剑指offer—合并两个排序的链表
- 单片机串口发送数据帧
- ocp-11
- 并查集
- 2016 微软秋招(校招)在线笔试 题目234
- hdu 5131 (2014广州现场赛 E题)
- UI_UITableView界面传值(将前面的属性传值和协议传值结合起来)
- ocp-010
- jdbc数据库的连接
- ios软件开发 NSDate
- 2016 微软秋招(校招)在线笔试 题目1 : Farthest Point
- Linux中I/O重定向
- NSValue
- 剑指offer—反转链表
- Learning Spark - LIGHTNING-FAST DATA ANALYSIS 第四章 - (3)
- The following SDK component was not installed: extra-google-m2repository
- Web学习之——02Apache的基本配置(全局配置、主服务器配置)
- 随想录(cloud 网络库)
- VirtualBox错误:Unable to load R3 module 解决方法
- JAVA中int、String的类型转换