我需要在下面的查詢中按年和月對資訊進行分組,但顯示以下錯誤:
{"LINQ to Entities 無法識別方法 'System.String ToString(System.String)' 方法,并且該方法無法轉換為存盤運算式。"}
查詢:
var query = (from TABLE_01 in Context.payment
join TABLE_02 in Context.documents on TABLE_01.code_doc equals TABLE_02.cod_doc
join TABLE_03 in Context.dispatch on TABLE_01.cod_dispatch equals TABLE_03.code_dispatch
where (new int[] { 1, 13, 14 }).Contains(TABLE_01.type_cust)
&& (TABLE_02.status < 14)
&& (TABLE_03.id_file_creation == 1)
&& (TABLE_03.creation_date >= initialDate && TABLE_03.creation_date <= finalDate)
group new { TABLE_02,
TABLE_01,
TABLE_03 } by new { TABLE_02.code_person,
yearMonth = TABLE_03.creation_date.ToString("yyyyMM"),
TABLE_01.type_cust }
into result
orderby result.Key.code_person, result.Key.yearMonth
select new
{
mtEpg = result.Key.code_person,
yearMonth = result.Key.yearMonth,
value_payment = ((int)(result.Sum(x => x.TABLE_01.value_payment) * 100)),
type_cust = result.Key.type_cust == 1 ? 991 : 992
}).ToList();
uj5u.com熱心網友回復:
因此,ToString(Format)不支持翻譯。所以要正確:按部分分割日期。
var query =
from TABLE_01 in Context.payment
join TABLE_02 in Context.documents on TABLE_01.code_doc equals TABLE_02.cod_doc
join TABLE_03 in Context.dispatch on TABLE_01.cod_dispatch equals TABLE_03.code_dispatch
where (new int[] { 1, 13, 14 }).Contains(TABLE_01.type_cust)
&& (TABLE_02.status < 14)
&& (TABLE_03.id_file_creation == 1)
&& (TABLE_03.creation_date >= initialDate && TABLE_03.creation_date <= finalDate)
group new { TABLE_02,
TABLE_01,
TABLE_03 } by new { TABLE_02.code_person,
Year = TABLE_03.creation_date.Year,
Month = TABLE_03.creation_date.Month,
TABLE_01.type_cust }
into result
orderby result.Key.code_person, result.Key.Year, result.Key.Month
select new
{
mtEpg = result.Key.code_person,
result.Key.Year,
result.Key.Month,
value_payment = ((int)(result.Sum(x => x.TABLE_01.value_payment) * 100)),
type_cust = result.Key.type_cust == 1 ? 991 : 992
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/384648.html
標籤:C# sql-server 林克
上一篇:更新sql結果集
