Asp.net mvc EF延迟加载不适用于使用DB视图的拆分实体
我尝试使用实体拆分,以便使用从数据库视图收集的属性扩展实体。如果我直接加载分割的实体,这很好,但是如果我有一个实体通过导航属性连接分割的实体,它就不起作用了 让我们粗略地说它看起来像这样 [实体A]-[实体B]-[实体C] 如果实体C没有被拆分,我可以得到实体A并通过实体B导航到实体C,这是通过使用惰性加载的navigationproperties完成的(据我所知)。这很有魅力 如果实体C是包含DB表和DB视图数据的拆分实体,则上述从实体a到实体C的导航返回null。另一方面,如果我直接加载实体C,它将被完全加载,其中既包含DB表的数据,也包含DB视图的数据Asp.net mvc EF延迟加载不适用于使用DB视图的拆分实体,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,我尝试使用实体拆分,以便使用从数据库视图收集的属性扩展实体。如果我直接加载分割的实体,这很好,但是如果我有一个实体通过导航属性连接分割的实体,它就不起作用了 让我们粗略地说它看起来像这样 [实体A]-[实体B]-[实体C] 如果实体C没有被拆分,我可以得到实体A并通过实体B导航到实体C,这是通过使用惰性加载的navigationproperties完成的(据我所知)。这很有魅力 如果实体C是包含DB表和DB视图数据的拆分实体,则上述从实体a到实体C的导航返回null。另一方面,如果我直接加载实体
有什么特别的东西我没有想到吗?这是吉尔·芬克的一篇文章,可能会有所帮助 如果实体C是包含DB表和DB视图数据的拆分实体,则上述从实体a到实体C的导航返回null。另一方面,如果我直接加载实体C,它将被完全加载,其中既包含DB表的数据,也包含DB视图的数据 你说的听起来不错。如果正确拆分表,那么这些属性在实体C中将不再可用
如果您不“一直”需要实体C的属性,那么您的第一个映射场景就足够了 我的问题是,分割的实体通过内部连接(请参阅此处的讨论)进行连接,我所期望的是类似于左连接的东西,因此如果存在额外表中的属性,则添加它们,如果不存在则忽略它们。事实上,如果附加表中没有条目,则整个实体不会初始化
上面提到的延迟加载问题只是巧合,因为一方面我加载了一个包含传统属性的实体,另一方面加载了一个没有这样做的实体,因此甚至没有按照前面所述进行初始化。感谢您的回答。这不是我问题的解决办法,但你链接中的文章帮助我理解了内部连接关系才是问题所在