在我的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.truncatetime
和EntityFunctions.truncatetime
我仍然面临着这个问题,我不应该在数据库方面将数据类型从日期改为日期时间,请帮帮我
提前谢谢
答案 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);