Io non sono bravo a espressione LINQ, oggi io sono in esecuzione in un problema strano come il seguito di interno join,LINQ to SQL unirsi genera SQL che unisce il IS NULL
var orders = (from q in dao.CurrentDBContext.New_OrderForm
join d in dao.CurrentDBContext.New_OrderGoodsDetail on q.billNum equals d.billNum
select new
{
q.billNum,
q.orderSource,
q.sourceOddNum
d.PPT
}
Mentre ho tracciato il LINQ affermazione, mi sono confuso di quella Entity Framework
convertirà la dichiarazione LINQ to SQL lo statment sotto
SELECT
[Extent1].[billNum] AS [billNum],
[Extent1].[orderSource] AS [orderSource],
[Extent1].[sourceOddNum] AS [sourceOddNum],
[Extent2].[PPT] AS [PPT]
FROM [dbo].[New_OrderForm] AS [Extent1]
INNER JOIN [dbo].[New_OrderGoodsDetail] AS [Extent2]
ON ([Extent1].[billNum] = [Extent2].[billNum]) OR
(([Extent1].[billNum] IS NULL) AND ([Extent2].[billNum] IS NULL))
sapete perché il segmento di SQL di seguito ha allegato automaticamente?
OR (([Extent1]. [BillNum] IS NULL) E ([Extent2]. [BillNum] IS NULL) "
non mi aspetto che quanto sopra aggiungerà automaticamente, dal momento che ha fatto .? rallentare le prestazioni di SQL Eventuali suggerimenti
Qual è il ** tipo ** di 'q.billNum' e' d.billNum'? –
entrambi di tipo di dati sono uguali, tipo stringa – beyond8848
La colonna non è valida? Forse gli uguali in 'q.billNum equivale a d.billNum' presuppone che si desidera anche che' NULL == NULL' corrisponda? – Sam