gpt4 book ai didi

c# - 查询子属性时同时选择父项和子项

转载 作者:行者123 更新时间:2023-11-30 19:09:07 25 4
gpt4 key购买 nike

在我的数据结构中,我有以下类:

public partial class Item
{
// stuff
public int QuoteId { get; set; }
public virtual ItemType ItemType { get; set; }
}

public partial class ItemType
{
//stuff
public virtual ICollection<Item> Items { get; set; }
}

我想要做的是获取所有 ItemType 的列表,每个 ItemType 都根据 QuoteId 填充其 Items 集合。

因此,例如,如果有三种项目类型,其中只有两种具有报价 ID 为 50 的项目:

  • 项目类型 1
    • Item.QuoteId == 50
  • 项目类型2
  • 项目类型 3
    • Item.QuoteId == 50

我已经设法通过这个查询得到一些接近的东西:

r.ItemTypes.Select(x => x.Items.Where(i => i.QuoteId == CurrentQuote.QuoteId));

但这给你的(如你所料,因为我是 Select ing on Item)是一个 IEnumerable<IEnumerable<Item>> .这具有我想要的结构,但没有 ItemType 数据。

我意识到这是一个愚蠢的问题,但我对无法得到答案感到沮丧。

最佳答案

r.ItemTypes.Where(x => x.Items.Any(i => i.QuoteId == CurrentQuote.QuoteId));

如果您需要获取所有 ItemType 并且只需要获取每个的特定 Item,您可以这样做:

r.ItemTypes.Select(x => new 
{
x,
FilteredItems = x.Items.Where(i => i.QuoteId == CurrentQuote.QuoteId)
});

之后,您需要为每个 ItemType 分配 x.ItemsFilteredItems

关于c# - 查询子属性时同时选择父项和子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33497303/

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