将TSQL查询转换为LINQ

时间:2017-04-05 23:39:57

标签: c# tsql linq-to-sql

我创建了一个SQL语句,用于从数据库中收集未处理的文件。它使用DicomDataType_LK表将结果限制为我感兴趣的人。当我运行它时,我得到两个结果。

SELECT * FROM [Procedure].DicomData dicoms
JOIN [Procedure].DicomDataType_LK dtype
    ON dicoms.DicomDataTypeID = dtype.DicomDataTypeID
WHERE dicoms.ProcedureID = '00000000-0000-0000-0000-000000000000'
    AND dicoms.CreateDate > '3/27/2017'
    AND (dtype.DicomDataType LIKE 'V Density'
        OR dtype.DicomDataType LIKE 'Q Density'
        OR dtype.DicomDataType LIKE 'i Density'
        OR dtype.DicomDataType LIKE 'u Density')

我已将其转换为LINQ to SQL,但是使用相同的连接我得到的结果为零。

            IQueryable<DicomData> rows = from dicoms in db.DicomDatas
               join dtype in db.DicomDataType_LKs
                  on dicoms.DicomDataTypeID equals dtype.DicomDataTypeID
               where dicoms.ProcedureID == Guid.Empty
                  && dicoms.CreateDate > fromTime
                  && (dtype.DicomDataType.Equals("V Density")
                  || dtype.DicomDataType.Equals("Q Density")
                  || dtype.DicomDataType.Equals("i Density")
                  || dtype.DicomDataType.Equals("u Density"))
               select dicoms;

我已经确认fromTime提供的值应该包括我的两个结果。有人可以让我知道我的翻译错误吗?

1 个答案:

答案 0 :(得分:1)

从我所看到的:

AND dicoms.CreateDate >= '3/27/2017'&& dicoms.CreateDate > fromTime

不同

即。 >=>

不同