C# 在EF中将一个表与另一个表关联多次
我有两个表,比如C# 在EF中将一个表与另一个表关联多次,c#,entity-framework,C#,Entity Framework,我有两个表,比如Table1和Secondtable表1有多个列具有第二个表的外键。示例结构如下所示 Table1 ID Name Col1 Col2 Col3 Secondtable COlID Col1 在表1中Col1、Col2、Col3具有FK toSecondtable.ColID。现在将EF添加到应用程序中。(在我的例子中是ASP.NETC#)。当您看到表1的at实体模型时,它将具有第二个表的三个属性,如下所示 public virtual Secondtable Sec
Table1
和Secondtable
<代码>表1有多个列具有第二个表的外键。示例结构如下所示
Table1
ID Name Col1 Col2 Col3
Secondtable
COlID Col1
在表1中
Col1、Col2、Col3
具有FK toSecondtable.ColID
。现在将EF添加到应用程序中。(在我的例子中是ASP.NETC#)。当您看到表1的at实体模型时,它将具有第二个表的三个属性,如下所示
public virtual Secondtable Secondtable { get; set; }
public virtual Secondtable Secondtable1 { get; set; }
public virtual Secondtable Secondtable2 { get; set; }
现在在Table1
中添加另一列,如BCol
,与Secondtable.ColID
相关。在应用程序中更新EF。你的模型看起来像
public virtual Secondtable Secondtable { get; set; }
public virtual Secondtable Secondtable1 { get; set; }
public virtual Secondtable Secondtable2 { get; set; }
public virtual Secondtable Secondtable3 { get; set; }
问题是如何确定哪一列与表1的列相关?我认为SQLServer会按字母顺序给出键名。也就是说,按顺序Col1,Col2,然后Col3
。如果添加更多列,它将相应地更改名称(Bcol、Col1、Col2、Col3)。当我们更新edmx时,我必须在studio中的模型浏览器中更改关系名称
有没有简单的方法来确定这种关系?谢谢
(如果需要改进解释,请进行注释。)您使用的是哪种方法:代码优先还是数据库优先?数据库优先。如果添加更多列,它将相应地更改名称否。如果添加更多外键,Sql Server不会更改现有约束名称。但为什么会有这么多协会?这四个参考文献有不同的作用吗?如果是,请相应地命名外键和约束,以便在edmx中识别它们。如果没有,请将其转换为一对多关联。