在我的数据结构中,我有以下类:
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; }
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是获取所有ItemTypes的列表,每个ItemTypes都根据QuoteId填充其Items集合.
因此,例如,如果有三种项目类型,则其中只有两种具有引用ID为50的项目:
我已经设法通过这个查询获得了一些东西:
r.ItemTypes.Select(x => x.Items.Where(i => i.QuoteId == CurrentQuote.QuoteId));
Run Code Online (Sandbox Code Playgroud)
但是这给了你(正如你所预期的那样,因为我正在Select使用Item)是一个IEnumerable<IEnumerable<Item>>.这具有我之前的结构,但没有ItemType数据.
我意识到这是一个愚蠢的问题,但我对无法得到答案感到沮丧.
r.ItemTypes.Where(x => x.Items.Any(i => i.QuoteId == CurrentQuote.QuoteId));
Run Code Online (Sandbox Code Playgroud)
如果您需要获取所有ItemTypes并且只获取每个项目的特定项目,您可以这样做:
r.ItemTypes.Select(x => new
{
x,
FilteredItems = x.Items.Where(i => i.QuoteId == CurrentQuote.QuoteId)
});
Run Code Online (Sandbox Code Playgroud)
之后,你需要分配x.Items给FilteredItems每一个ItemType的
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |