2017-01-28 3 views
0

In Meine SQL-db ist Datum, wenn ich Entity Linq Where-Klausel verwende, ich bin mit dem Problem konfrontiert wie "Der angegebene Typ Member 'Date' wird nicht unterstützt in LINQ to Entities. Nur Initialisierer, Entität Mitglieder und Entität Navigation Eigenschaften werden unterstützt. " dies ist mein where-Klausel"Datum" wird in LINQ to Entities nicht unterstützt. Nur Initialisierer

TeamWorks.work_plan_dt == DateTime.Now.Date 
var t = uow.TeamWork.GetAll().Where(t => t.work_plan_dt.Date == DateTime.Today.Date); 
public DateTime? work_plan_dt { get; set; } 

ich verwendet habe dbfunctions.truncatetime und EntityFunctions.truncatetime noch ich das Problem bin vor, ich soll nicht den Datentyp in db Seite von Datum Datumzeit ändern, mir bitte

helfen

Aufstieg dank

+0

Ihre q Die Frage ist nicht klar, aber es scheint, als ob das Problem tatsächlich nichts mit dem zu tun hat, was Sie denken (der Datumstyp). Bitte schreiben Sie den tatsächlichen Code, der Ihnen diesen Fehler gibt. –

+0

Warum nicht nur 'DateTime.Today'? – Rob

+0

TeamWorks.work_plan_dt.Date == DateTime.Today.Date, –

Antwort

0

Sie können Ihre C# -Methoden nicht in Ihrem linq-Code aufrufen, da für sie keine Übersetzung vorhanden ist. Wenn Sie einen Datetime-Wert haben, berechnen Sie einfach den Wert, den Sie benötigen, und übergeben Sie ihn an linq query.

Gefällt Ihnen dieses

var someDate = DateTime.Now.AddDay(1); 
var list = Db.MyTable.Where(x=>x.Date>someDate).ToList(); 
0

Sie können dies ändern:

var t = uow.TeamWork.GetAll().Where(t => t.work_plan_dt.Date == DateTime.Today.Date); 

Um dies:

var t = ((from x in uow.TeamWork.GetAll() select x).ToList().Where(
          T => T.work_plan_dt.Date == DateTime.Today.Date).ToList() 

Oder diese:

var t = uow.TeamWork.GetAll().ToList().Where(t => t.work_plan_dt.Date == DateTime.Today.Date); 
Verwandte Themen