'日期' LINQ to Entities不支持。只有初始化者

时间:2017-01-28 13:03:09

标签: c# entity-framework linq

在我的sql db中是Date,当我使用实体linq where子句时,我面临的问题是"指定的类型成员'日期' LINQ to Entities不支持。仅支持初始化程序,实体成员和实体导航属性。"这是我的where子句

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; }

我已经使用了dbfunctions.truncatetimeEntityFunctions.truncatetime我仍然面临着这个问题,我不应该在数据库方面将数据类型从日期改为日期时间,请帮帮我

提前谢谢

2 个答案:

答案 0 :(得分:0)

您无法在linq代码中调用c#方法,因为它们没有翻译。如果您有日期时间值,只需计算所需的值,然后将其传递给linq查询。

喜欢这个

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

答案 1 :(得分:0)

你可以改变这个:

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

对此:

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

或者这个:

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