SQL和Linq中的日期函数问题

时间:2009-08-31 15:13:07

标签: c# .net linq

我在SQL Server 2000上发布了一个SQL:

select * from Employee where LastUpdateDate >=DateAdd(yyyy,-1,Getdate())

它工作正常,并有一些记录。

然后我出于同样的目的写了一个Linq:

EntityQuery<Employee> query = from e in ctx.GetEmployeeQuery()
                               where e.DateCreated >= DateTime.Today.AddYears(-1)

但结果是空的。

如何解决?

1 个答案:

答案 0 :(得分:3)

Linq to Entities不支持AddYear方法。它不知道如何将其转换为SQL。解决方案是预先确定价值。

var targetDate = DateTime.Now.AddYears(-1)
EntityQuery<Employee> query = from e in ctx.GetEmployeeQuery()
                               where e.DateCreated >= targetDate