EF重新加载参考
本文关键字:加载 参考 新加载 EF | 更新日期: 2023-09-27 18:28:43
我正在向上下文中添加新的实体,并且我希望在添加完成后填充它的所有引用集合。问题是,我正在从add()过程中创建的上下文中读取相同的实体,基本上EF不会进入DB。这是正确的行为,但我该如何避免呢?
Repo().Add(newEntity);
Repo().Reload(newEntity);
这将从DB重新加载实体,但我没有获得引用(FK关系)。我已经找到了如何加载引用,但是我需要一种通用的方法来加载任何实体的所有引用。
var entry = Context.Entry(entity);
entry.Reference("ReferenceName").Load();
以上是正确的方法还是其他方法?
如果没有看到您的存储库代码,我猜这是一个懒惰的加载问题。
该网站解释了加载的急切与懒惰:http://msdn.microsoft.com/en-us/data/jj574232.aspx
您可以通过在repo中使用.Include()来指定要带回的引用(适用于不需要所有内容的长链)。
context.Set<whateverType>.Include(t => t.(whatever you are referencing)).Where(t => t.id = id);
或者,您可以指定使用热切加载的上下文,并在检索时带回所有内容。
context.LazyLoadingEnabled = false;