gpt4 book ai didi

c# - 包含派生类 EF 的属性

转载 作者:行者123 更新时间:2023-11-30 18:30:45 24 4
gpt4 key购买 nike

案例:我有一个公司列表,每个公司都包含一个商店和一些其他属性,如地址、名称……。商店可以是 FruitStore 类型或 VegetableStore 类型(两者都派生自 Store)。如果商店是水果店,我想包含一个水果店独有的属性,例如 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
});

关于c# - 包含派生类 EF 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21184763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com