【发布时间】:2019-07-23 13:34:51
【问题描述】:
我正在尝试将以下 SQL 转换为 c# 中的 Linq 查询(.net core 2.1 和 EF core 2.2)
SELECT TD.*, RD.Match
FROM TransactionDetail TD
INNER JOIN dbo.Measure M ON M.InternalID = TD.MetricCode
LEFT OUTER JOIN (
SELECT tmp.ID, tmp.ReportingDate, 1 AS Match
FROM tmp
) AS RD ON RD.ID = M.Frequency AND RD.ReportingDate = TD.ReportingDate
WHERE RD.Match IS NULL AND
TD.BatchID = @batchID AND
NOT EXISTS (SELECT TransactionFailureReasonID FROM TransactionDetailFailureReasons R WHERE R.TransactionDetailID = TD.ID and R.TransactionFailureReasonID = 'NRD') AND
NOT EXISTS (SELECT TransactionFailureReasonID FROM TransactionDetailFailureReasons R WHERE R.TransactionDetailID = TD.ID and R.TransactionFailureReasonID = 'RDP') AND
NOT EXISTS (SELECT TransactionFailureReasonID FROM TransactionDetailFailureReasons R WHERE R.TransactionDetailID = TD.ID and R.TransactionFailureReasonID = 'RDF')
有人可以帮助我如何先进行内部联接,然后再进行左外部联接吗?
我已经走了这么远,
var IQ1 = (from TD in IngestionHubContext.TransactionDetail
join M in ModelHospitalPreviewContext.Measure on TD.MetricCode equals M.InternalId
join R in RD.DefaultIfEmpty on new {ID = M.Frequency, TD.ReportingDate} equals new { R.ID, R.ReportingDate} into J
//?????
感谢任何帮助或建议。
提前致谢。
【问题讨论】:
标签: c# sql linq .net-core entity-framework-core