Entityframework子类在枚举时不包含它的属性

时间:2014-01-05 01:58:17

标签: c# asp.net-mvc entity-framework poco

使用一个简单的例子:

我有一个 Car 类,子类 Mazda

马自达有一个属性: MazdaWarrentyDate

使用我的Db Context,我去了:

var collection = db.user.cars;

然后,我使用:var c in collection

循环访问collectiong

我使用条件来检查实例的类型是否是马自达,然后将其转换为马自达。 但 MazdaWarrentyDate为空!

经过调试,我在投射之前查看了POCO,实际上这个属性不存在,即使它将其识别为马自达类型。

这是实体框架中的限制吗?如果是这样,我该如何解决这个问题?谢谢!

2 个答案:

答案 0 :(得分:1)

var collection = db.user.cars.Where(t=> t is Mazda).OfType<Mazda>();

foreach (var car in collection ){

    //TODO 

}

答案 1 :(得分:0)

关联对象为空的原因是因为我从查询开始 用户 - &gt;汽车等 为了解决这个问题,我简单地开始查询汽车,例如:

db.cars.where(c => c.user.id == myUserId);

这样做导致相关的poco被延迟加载,这可以在一个循环中迭代。