如果我在需要作为 LINQ-to-SQL 查询执行的 TSQL 查询中有很多 COALESCE 列。如何将其转换为高效的 LINQ-to-SQL 查询?例如:
SELECT COALESCE(t1.Date, t2.DocDate, t3.PostingDate, t4.DocDate, t5.DocDate) DocDate
FROM t0
LEFT JOIN t1 ON t0.t1id = t1.id
LEFT JOIN t2 ON t0.t2id = t2.id
LEFT JOIN t3 ON t0.t3id = t3.id
LEFT JOIN t4 ON t0.t4id = t4.id
LEFT JOIN t5 ON t0.t5id = t5.id
有什么方法可以比以下更好地在 LINQ 查询中编写它?
Dim result = ( _
From c in context.t0 _
Select DocDate=If(t0.t1.Date, If(t0.t2.DocDate, If(t0.t3.PostingDate, _
If(t0.t4.DocDate, t0.t5.DocDate)))))
我实际上在合并中有几十列要“合并”,两个不同的合并返回两个不同的合并列,所以结果可能会变得非常混乱,我担心如果不处理它会非常低效合并。