2016-05-26 9 views
0

。私は次の質問から結果を得ようとしています。EF:私はMYSQLデータベースでEntity Frameworkのを使用していますどのようにフィルタのため、今日の日付を比較するために、データ

select COUNT(*) from tbldata where CreatedBy is not null and created is not null and DATE(Created) = DATE(NOW()) 

上記のクエリは正確な結果を返しました。私はE.Fでこのクエリを試しましたが、0 Countを返します。

var todayDate = DateTime.Now.Date; 

_db.TblData.Where(c => c.CreatedBy != null && c.Created != null && c.Created == todayDate) 
       .Count(); 

E.Fの日付の値のみを比較するにはどうすればよいですか?

+0

'c.Created.Date == DateTime.Now.Date'は、' DateTime'タイプの 'Created'ですか? –

+0

はい、私はこれも試しました "c.Created.Value.Date == todayDate"。 'EntityFunctions.TruncateTime(c.Created)== DateTime.Now.Date' –

+0

「指定された型のメンバ『日』はエンティティへのLINQでサポートされていない」スローEF6以来の' EntityFunctions'は廃止され、 'DbFunctions'に置き換えられました –

答えて

0

は、拡張メソッドはLINQのために動作しない、このように使用してみてください、ありがとうございました。

_db.TblData.Count(c => c.CreatedBy != null && c.Created != null && c.Created.Date == DateTime.Today); 
+0

「FUNCTIONのdbname.TruncateTimeは存在しません」 「作成済み」列はすでにDateTime型です。 –

+0

そのような場合には、時間値が必要であり、日付値と比較できない時間値がある場合は、常にfalseになります。 – sumngh

+0

私は自分の答えを更新しました。今すぐ確認してください。 – sumngh

関連する問題