![](/img/trans.png)
[英]EF Fluent API: Set property for each entity derived from a base abstract class
[英]include property from derived class EF
case:我有一个公司列表,每个公司包含一个商店和一些其他属性,如地址,名称,....商店可以是FruitStore类型或类型VegetableStore(两者都来自商店)。 如果商店是一个水果店,我想要包含一个对于fruitstore而言唯一的属性,例如TheBestOrange(它是一个对象)。
如何在我的查询中包含theBestOrange以及公司的属性?
我有
companies.Include(s => s.Store)
.OfType<FruitStore>()
.Include(a => a.theBestOrange)
但这会将我的返回类型更改为水果商店列表而不是公司列表
我希望自己清楚明白。
我假设您想要在查询中包含所有商店,而不仅仅是水果商店。 您不能投影到某些对象包含属性而其他对象不包含的对象列表,因为它们是不同的类型。 所以它必须是一个可以为空的财产。 也许是这样的(未经测试):
var query = companies.Select(c => new {
CompanyProp1 = c.CompanyProp1,
CompanyProp2 = c.CompanyProp2,
StoreProp1 = c.Store.StoreProp1,
TheBestOrange = c.Store is FruitStore ? ((FruitStore)c.Store).theBestOrange : null
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.