我正在向使用 EntitySpaces 的旧 ServiceStack 应用程序添加新功能。我正在构建一个非常简单的 SQL 查询,当我执行它时,它根本不返回任何记录。如果我在尝试加载集合、复制查询并在 SSMS 中执行它的位置设置断点,我会得到我正在寻找的记录。但是当我让 ES 执行它时,它得到 0 个结果。
这是查询。
SELECT pchtq.[status],
pchtq.[amount],
pchtq.[recordcreatedatetime],
utaq.[username],
utaq.[fullname]
FROM [DATABASE].[dbo].[transactions] pchtq
INNER JOIN [DATABASE].[dbo].[userinfo] utaq
ON pchtq.[id] = utaq.[id]
WHERE ( ( ( pchtq.[recordcreatedatetime] >= '01/01/2009'
AND pchtq.[recordcreatedatetime] <= '05/10/2016' )
AND Upper(pchtq.[status]) = 'PAID' )
OR Upper(pchtq.[status]) = 'AUDIT' )
这是C#
pchtq
.Select(
pchtq.Status,
pchtq.Amount,
pchtq.RecordCreateDateTime,
utaq.UserName,
utaq.FullName)
.InnerJoin(utaq).On(pchtq.id== utaq.id)
.Where(pchtq.RecordCreateDateTime >= request.StartDate
&& pchtq.RecordCreateDateTime <= request.EndDate
&& pchtq.Status.ToUpper() == "PAID" || pchtq.Status.ToUpper() == "AUDIT");
if (pchtc.Load(pchtq))
{
//stuff
}
就像我说的,实际的 SQL 查询在执行时返回 1 行(这是我所期望的)。C# 什么也不返回。此外,查询中的参数在 SQL 和 C# 之间是相同的