Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The specified type member 'Date' is not supported in LINQ to Entities Exception

I got a exception while implementing the following statements.

 DateTime result;  if (!DateTime.TryParse(rule.data, out result))      return jobdescriptions;  if (result < new DateTime(1754, 1, 1)) // sql can't handle dates before 1-1-1753      return jobdescriptions;  return jobdescriptions.Where(j => j.JobDeadline.Date == Convert.ToDateTime(rule.data).Date ); 

Exception

The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported. 

I know what the exception means but i don't know how to get rid of it. Any help?

like image 645
nebula Avatar asked Jul 22 '12 02:07

nebula


1 Answers

You can use the TruncateTime method of the EntityFunctions to achieve a correct translations of the Date property into SQL:

using System.Data.Objects; // you need this namespace for EntityFunctions  // ...  DateTime ruleData = Convert.ToDateTime(rule.data).Date; return jobdescriptions     .Where(j => EntityFunctions.TruncateTime(j.JobDeadline) == ruleData); 


Update: EntityFunctionsis deprecated in EF6, Use DbFunctions.TruncateTime

like image 82
Slauma Avatar answered Dec 11 '22 12:12

Slauma