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# で同じです。