Mah*_*l25 5 entity-framework-4

以上是我们领域模型的简化版本。NotificationOrder具有对子类实例的引用(考虑ReferenceNumberBase逻辑抽象)。
问题:
我想要一个查询返回NotificationOrders满足 XYZ 的所有内容,并且我希望该查询急切地加载所有引用的实例CustomerCase(包括该图的所有相关对象,除了Group暂时忘记该问题)。
我已经尝试寻找解决方案,但我发现的所有问题的解决方案都相当于CustomerCase直接作为根对象查询。
我想要这样的东西:
var query = ObjectContext.CreateObjectSet<NotificationOrder>.Where(e => e.NotificationType == "Foo");
return ((ObjectSet<NotificationOrder>) query).Include("ReferenceNumberBase");
Run Code Online (Sandbox Code Playgroud)
但是,这不会加载任何其他相关对象的Vehicle实例CustomerCase。我如何表达这一点,以便 EF 了解我想要的急切负载(我非常想避免多次往返/通知顺序)?
注意:由于CustomerCase是派生类型,因此我无法使用以下内容进行正常的传递包含:
var query = ObjectContext.CreateObjectSet<NotificationOrder>.Where(e => e.NotificationType == "Foo");
return ((ObjectSet<NotificationOrder>) query).Include("ReferenceNumberBase.Vehicle"); //
Run Code Online (Sandbox Code Playgroud)
由于该Vehicle属性是派生CustomerCase类型的成员,而不是ReferenceNumberBase 类型,因此我们得到如下错误:
“EntityType 'Model.ReferenceNumberBase' 未声明名为 'Vehicle' 的导航属性。”
我也不能使用,query.OfType<CustomerCase>...因为查询类型是NotificationOrder, 而不是 ReferenceNumberBase (或者我可以以某种方式?)。
附:我们正在使用带有 EF4 的自我跟踪 POCO 实体(尚未升级到 4.1)
编辑:我搜索了更多,大约一年前,这似乎是 Include() 方法的限制(至少在当时)。这是否准确?从那时起是否已解决?[来源如下]
| 归档时间: |
|
| 查看次数: |
967 次 |
| 最近记录: |