EF中一对多的最佳方法
本文关键字:最佳 方法 一对多 EF | 更新日期: 2023-09-27 18:10:17
我想问你们,这两种方法有什么不同。
场景1public class Foo
{
public int FooId { get; set; }
public virtual Bar Bar { get; set; }
}
public class Bar
{
public int BarId { get; set; }
}
场景2
public class Foo
{
public int FooId { get; set; }
public int BarId { get; set; }
public virtual Bar Bar { get; set; }
}
public class Bar
{
public int BarId { get; set; }
public virtual ICollection<Foo> Foos { get; set; }
}
在这两种情况下,EF都将生成具有适当列和外键的表。那么,是一种情况比另一种情况好吗?
很抱歉我的英语不好,谢谢你的帮助
没有好坏之分。
从代码优先中推导出的EDM模型在两种情况下非常相似(可能相等)。
然而,有一个非常重要的区别:在第二种情况下,你可以访问第一种情况中缺少的一些东西:
-
Foo
中的BarId
-
Bar
中的Foos
除了这个差异之外,内存中的EDM模型和对模型进行的查询行为将是相同的。
所以唯一的问题是:你需要从Bar
访问Foos
吗?您是否需要访问Foo
中的BarId
?这是唯一真正的区别