5

EntitySQLクエリでEntityObjectを使用してMSSQLDBからいくつかのレコードをフェッチしようとしています。フィルタリングに使用しているフィールドは、日時のタイプです。ミリ秒なしでSQLServerに投影された生成されたクエリは、何も返しません。ミリ秒を加算すると、結果が得られます。

EntitySQLを使用してミリ秒なしで結果を取得するにはどうすればよいですか?

ありがとう。

4

3 に答える 3

3

エレガントではありませんが、これは私にとってはうまくいきました:

foos.SingleOrDefault(f => f.EntryDate.Year == bar.EntryDate.Year &&
                          f.EntryDate.Month == bar.EntryDate.Month &&
                          f.EntryDate.Day == bar.EntryDate.Day &&
                          f.EntryDate.Hour == bar.EntryDate.Hour &&
                          f.EntryDate.Minute == bar.EntryDate.Minute &&
                          f.EntryDate.Second == bar.EntryDate.Second);
于 2010-08-31T03:36:59.663 に答える
1

これを行う1つの方法は、データのビューを作成することです。ここで、日時列はsmalldatetime(ミリ秒は含まれません)に変換されます。

次に、ビューをエンティティフレームワークモデルに追加し、ビューからデータを読み取ります。

お役に立てれば

シラーズ

于 2009-07-02T17:52:33.573 に答える
0

私が見つけた回避策は、最初のフェッチストアの日付を.ToBinary()として、フィルターをかけるときにnew DateTime(binaryValue)を実行して、それと比較することです。

于 2009-08-13T15:04:38.200 に答える