我有以下LINQ到SQL查詢:LINQ-2-SQL和 '字符' 值
from cms in ConsignmentMarginBreakdowns.Where(a => a.BreakdownType == 'S')
from cmc in ConsignmentMarginBreakdowns.Where(a => a.BreakdownType == 'C')
where cms.TripNumber == cmc.TripNumber && cms.Depot == cmc.Depot && cms.TripDate == cmc.TripDate
select new
{
NTConsignment = cms.NTConsignment,
Depot = cms.Depot,
TripNumber = cms.TripNumber,
TripDate = cms.TripDate,
Sales = cms.Value,
Costs = cmc.Value,
Margin = cms.Value - cmc.Value
}
在 'BreakdownType' 字段是 '字符(1)' 式中的SQL Server 2008。由於某種原因,查詢沒有按照原樣返回結果。爲了得到它帶回的結果,我需要改變前2線以下,這是我想象降低了查詢的速度:
from cms in ConsignmentMarginBreakdowns.Where(a => a.BreakdownType.ToString() == "S")
from cmc in ConsignmentMarginBreakdowns.Where(a => a.BreakdownType.ToString() == "C")
這是爲什麼?
對於沒有工作的查詢...生成了什麼TSQL? (或者使用sql trace,或者設置'cms.Log = Console.Out;'或類似的) –
我可以知道你的datacontext類中的BreakdownType的數據類型是什麼 – FosterZ