[英]IGrouping<anonymous type:, string> does not contain a definition for '' and no extension method ''
[英]IGrouping does not contain a definition for
我一直在這里查看其他線程,以了解如何在linq中執行GroupBy。 我正在使用對其他人有用的EXACT語法,但是,它不起作用。
這是查詢:
var results = from p in pending
group p by p.ContactID into g
let amount = g.Sum(s => s.Amount)
select new PaymentItemModel
{
ContactID = g.ContactID, // <--- Error here
Amount = amount
};
pending
是一個List<T>
,其中除其他列外還包含ContactID
和Amount
,但這是我對此查詢僅關心的兩個。
麻煩的是,在select new
的g.
不會給我原始列表內的任何列, pending
。 當我嘗試時,我得到:
IGrouping
<int, LeadPurchases>
不包含ContactID的定義,也沒有擴展方法等等……
這是我要模擬的SQL:
SELECT
lp.PurchasedFromContactID,
SUM (lp.Amount)
FROM
LeadPurchases lp
GROUP BY
lp.PurchasedFromContactID
您是根據ContactID
進行分組的,因此它應該是結果的鍵,因此您必須使用g.Key
而不是g.ContactID
; 這意味着查詢應類似於以下內容:
from p in pending
group p by p.ContactID into g
let amount = g.Sum(s => s.Amount)
select new PaymentItemModel
{
ContactID = g.Key,
Amount = amount
};
更新 :
如果要基於多個列進行分組,則GroupBy子句將如下所示:
group p by new
{
p.ContactID,
p.Field2,
p.Field3
}into g
select new PaymentItemModel()
{
ContactID = g.Key.ContactID,
anotherField = g.Key.Field2,
nextField = g.Key.Field3
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.