web-dev-qa-db-ja.com

エンティティフレームワークを使用して日時値からのみ日付部分を取得する

以下のコードを使用して、データベースの「日付時刻」値からのみ日付部分を取得したいのですが、日付部分と時刻部分を取得しています。

using (FEntities context = new FEntities())
{
    DateTime date = DateTime.Now;
    if (context.tblvalue.Any(x => x.date == date))
    {    
    }
}
11
Safeena

指定した部分だけを比較できます。

context.tblvalue.Any(x => x.date.Year == data.Year 
                        && x.date.Month == data.Month 
                        && x.date.Day == data.Day);

編集:以下を試すこともできます。

context.tblvalue.Any(x => EntityFunctions.TruncateTime(x.date) == data.Date);

別のアプローチ:

context.tblvalue.Any(x =>  SqlFunctions.DatePart("year", x.date)  == data.Year 
                        && SqlFunctions.DatePart("month", x.date) == data.Month 
                        && SqlFunctions.DatePart("day", x.date)   == data.Day);
23
user2160375

エンティティフレームワーク6と更新の使用

context.tblvalue.Any(x => DbFunctions.TruncateTime(x.date) == data.Date);
11
David Fawzy