如何檢查對於使用Linq to sql創建的組中的任何項目是否爲conditaion?檢查一個組中的任何項目的條件是否爲
假設我們有3個表:Invoice
,Order
和OrderItem
。
我想知道發票上所有訂單的總數,以及發票上訂單的訂單項是否有折扣。
from o in db.Orders
group o by new
{
InvoiceId = o.InvoiceId,
LocationId = o.LocationId,
} into g
select new
{
InvoiceId = g.Key.InvoiceId,
LocationId = g.Key.LocationId,
Total = g.Sum(x => x.Total).
HasDiscount = <???>
}
我試着用let discountedItems = o.OrderItems.Where(i.Discount != 0)
但我不知道如何引用正確的OrderItems。
編輯:
訂購屬性:Id
,InvoiceId
,LocationId
,Total
OrderItem的屬性:Id
,OrderId
,Discount
- 比方說,打折是一個整數值
答案暗示HasDiscount = g.Any(x => x.OrderItem.Select(oi => oi.Discount != 0).FirstOrDefault())
的樣子,可能是它,但我擔心性能,因爲我在Orders表中有300k個項目,在OrderItem中有超過100萬個項目。不會這對每個組進行查詢並實現其訂單項目?
對於表格的不好的描述,我表示歉意,請理解它們只是一些例子,我的真實案例會更復雜。
我想你正在尋找'Any':'HasDiscount = g.Any(x => x.Discount!= 0))' –
下一次,請發佈更多關於你的實體的細節 –
我編輯了更多細節的問題 –