繁体   English   中英

包括派生类EF的属性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM