1、前言
前两篇博文说的主外键关系都是一对一的外键关系,下面我们来说另外一种情况,一个主类中包含多个外键关键,基本代码如下。
public class B
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
}
public class A
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public B B1 { get; set; } /*第一次*/
public B B2 { get; set; } /*第二次*/
}
上述代码如下,对象B出现异常,没有问题,正常,如果实现多次怎么处理呢?
2、解决方法
利用ForeiginKey与Column都不可以,正确的方法是依赖EF框架自动生成外键, 我们只需要指定导航属性即可,EF自动创建命名规则为:“表名_主键名”的复键,代码如下:
public class A
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual B B1 { get; set; }
public virtual B B2 { get; set; }
}
public class B
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
}