您的位置:首页 > 其它

Code First 指定外键名称

2015-09-30 20:36 288 查看
指定类外键有注释(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的方法等待补充----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: