Linqクエリで2つの日付が等しく、日付が2つの異なるテーブルから来るかどうかを確認する必要があります)。私はWeb上の既存のソリューションを見てきました。いくつかは私の場合は適用されませんし、いくつかはエレガントではありません。何かがあれば、より良い代替ソリューションを探しているだけです。Linqで2つの日付が等しいかどうかを調べる優雅な解決方法(2番目の日付はパラメータではない)
サンプルクエリ(日付のみの部分を比較する必要がある):
var query = from t1 in Table1
join t2 in Table2 on t1.Id equals t2.ForeignKeyId
where t1.Id = someId
&& t1.Date1.Date.Equals(t2.Date2.Date)
をこの1つはEntitiiesにLINQでサポートされていないエラー「『日付』で失敗するだけ初期化子、エンティティのメンバー、およびエンティティのナビゲーションプロパティを。サポートされている "
投稿'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supportedには、曜日、月、および年を別々に比較するソリューションがあります。私はそれを拡張メソッドにラップしようとしましたが、Linqは拡張メソッドも好きではないようです。 2番目の日付は変数ではないので、リンクされたポストで言及されている他のソリューションを使用することはできません。何らかの理由でLinq内の日付に "AddDays"メソッドを呼び出すことはできません。 LinqのDate APIには多くの制限があるようです。
比較する日、月、年は別に動作しますか? – dasblinkenlight
はい、私はそれらを別々に比較すれば動作します。 – RKP