簡體   English   中英

Linq to Sql,由2個屬性和子串組成

[英]Linq to Sql, group by 2 property and substring

我有一個初始查詢,我想修改以增加結果的粒度。 但Visual Studio告訴我我的查詢無效,我無法理解為什么。 基本上我想根據2個屬性(列)對數據進行分組,並且還按前N個字符對屬性中的一個進行分組。

有效的初始查詢:

List<PostalCode> codes = (from customer in bd.Customers
                        group customer by customer.postalcode.Substring(0, postalCodeLength) into postalCodes
                        select new PostalCode
                        {
                            Postal = postalCodes.Key,
                            Count = postalCodes.Count()
                        }).ToList();
                return codes;

由VS2010標記為**錯誤的查詢:

List<PostalCode> codes = (from customer in bd.Customers
                          group customer by new { **customer.postalcode.Substring(0, postalCodeLength)**, customer.CustomerGroupType}
                          into postalCodes
                          select new PostalCode 
                          { 
                                Postal = postalCodes.Key.postalcode,
                                CustomerGroupType = postalCodes.Key.CustomerGroupType,
                                Count = postalCodes.Count() 
                          }).ToList();
 return codes;

新的{}對象語法要求屬性具有名稱 - 這是您的原始查詢不需要的名稱。 它無法從方法調用中推斷出名稱。 所以我建議將其更改為:

from customer in bd.Customers
group customer by new { TrimmedPostalCode = customer.postalcode.Substring(0, postalCodeLength), customer.CustomerGroupType}
into postalCodes
select new PostalCode 
{ 
    Postal = postalCodes.Key.TrimmedPostalCode,
    CustomerGroupType = postalCodes.Key.CustomerGroupType,
    Count = postalCodes.Count() 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM