【发布时间】:2017-04-19 21:32:17
【问题描述】:
我有 Backpack 和 Book 实体。书籍参考背包(一对多)。 我正在创建一个背包和一堆书籍的实例。所以在这种情况下,背包里有一堆书。我将这些实体保存到数据库中。我正在验证那些已保存到数据库中。当我尝试加载背包时,它加载正常,并且除了导航属性之外的所有属性都已设置。我也在检查 LazyLoading 是否被禁用。我的导航属性有 virtual 关键字。 我不确定我做错了什么。如果我尝试使用 Include() 加载背包,它会加载书籍:
dbContext.Backpacks.Where(b=>b.Name!="").Include("Books").FirstOrDefault()
我想弄清楚为什么它不懒惰地加载书籍?我在加载这本书时遇到了同样的问题。当我加载这本书时,它没有连接背包。我看到 BackpackId 在那里。
在我的属性 getter/setter 中,我有一些将被触发的逻辑,但我不确定这会是什么问题。
【问题讨论】:
-
你能展示你的实体吗?
-
是否也启用了 ProxyCreation?延迟加载需要工作
-
@Sentry 我刚刚检查并启用了 ProxyCreation。我将其设置为 false,但问题仍然没有消失。
-
ProxyCreation 必须为真,而不是假。上下文是否仍然打开?您能否显示更多代码,尤其是从您创建上下文的位置直到您释放它?
-
@Sentry 我不允许在网上发布代码,因为它不仅仅是两个实体。如果你没问题,我们可以通过 Skype 与我分享我的屏幕。感谢您的帮助!
标签: c# entity-framework entity-framework-6 lazy-loading