【发布时间】:2016-07-16 00:38:19
【问题描述】:
通常,当我声明一对多关系时,我会使用 ICollection,如下所示。
public class Thong
{
public Guid Id { get; set; }
public ICollection<Thing> Things { get; set; }
}
public class Thing
{
public Guid Id { get; set; }
public Thong Thong { get; set; }
}
这是自动完成的,无需考虑假设等。然而,我现在开始思考,我真的无法判断接下来的改动会在设置中发生什么变化。我已经对其进行了迁移,但据我所知,数据库没有区别。
model.Entity<Thing>()
.HasRequired(_ => _.Thong)
.WithMany(_ => _.Things)
.Map(_ => _.MapKey("ThongId"));
public class Thong
{
public Guid Id { get; set; }
public List<Thing> Things { get; set; }
}
public class Thing
{
public Guid Id { get; set; }
public Thong Thong { get; set; }
}
我怀疑的一件事是我刚刚终止了延迟加载,因此每次检索丁字裤时都会提供相关事物的所有实例。是这样吗?我很确定它是。
我的实际问题是,除了现在急切地填充列表之外,还有什么变化。
【问题讨论】:
-
我认为如果您启用了更改跟踪,它不会有任何区别,实体框架将替换为 EntityCollection
标签: c# entity-framework ef-code-first ef-fluent-api