具有UseLazyLoadingProxies的实体框架核心2.2拥有的实体

时间:2019-09-16 10:31:29

标签: entity-framework-core lazy-loading ef-core-2.2 owned-types

我目前正在开发一个代码库,我想向其中添加大量具有相应拥有实体的新实体。因为在代码库的其他部分中,我将不涉及UseLazyLoadingProxies的调用;我收到以下异常:

  

System.InvalidOperationException:实体类型“ FooOwner”上的导航属性“ Foo”不是虚拟的。 UseLazyLoadingProxies要求所有实体类型都是公共的,未密封的,具有虚拟导航属性以及公共或受保护的构造函数。

如果我将该属性标记为虚拟,则所拥有的实体将进入新表;我也不想要。

根据我遇到的github问题,这似乎是预期的行为。

我的问题是:有没有一种方法可以解决此问题,因此,我可以以某种方式将拥有实体标记为与拥有者实体存储在同一表中,并且如果可能的话,始终将其标记为{{1} } d,热切地加载。

Include

1 个答案:

答案 0 :(得分:1)

您应该使用OwnsOne而不是HasOne