私は、EndDateという名前のDateTime?
列を持つテーブルを持つsql-server-ce 4データベースを持っています。レコードを削除すると、この終了日を設定します。レコードのリストを取得する場合は、終了日にフィルタを適用して、削除されたレコードをすべてフィルタリングします。linqのDateTimeとSQL Server CEを比較する最も簡単な方法は何ですか?
このフィルターは、エンティティフレームワークを使用してlinq経由で適用します。
私のLINQクエリは次のようになります。私はこのLINQクエリを実行すると、私は次のエラーを取得する
protected IDbSet<TEntity> Entities;
...
Entities.AsNoTracking().AsQueryable()
.Where(entity => !entity.EndDate.HasValue || entity.EndDate.Value > DateTime.UtcNow);
:
The function 'CurrentUtcDateTime' is not supported by SQL Server Compact.
は、このエラーに検索するには、私はそれを理解している場合(と私に伝えます正しく)私はDateTime.UtcNowを使用することはできません。
私の質問は、私が到達しようとしている目標に達するための代替方法は何ですか?
linq経由で使用できる別の機能はありますか?または、私はdatetimeをEpochに変換して比較するより原始的なソリューションを使用する必要がありますか?
あなたは 'var now = DateTime.UtcNow;'と '... entity.EndDate.Value>を試しましたか? – Igor
entity.EndDate.Value.ComparetTo(otherDate)lookup CompareTo – kblau
イワール、ありがとう、トリックでした。私はそれを試みたと思ったが、私はしなかったと思う。私はまだvarが受け入れられ、プロパティはなぜではないのだろうか?何か案は? – Cornelis