1 from a in fkd.Deliveries.Take(10) 2 where a.OrderStatusID == 5 3 select new 4 { 5 week = SqlFunctions.DateName(strWeek, a.ActualSendTime.Value) 6 };
想返回当前日期所属第几周,结果报如下错误!!
LINQ to Entities does not recognize the method 'System.String DateName(System.String, System.Nullable`1[System.DateTime])' method, and this method cannot be translated into a store expression.
先把数据放到内存里再处理,SQL 没有 DateName 这个函数。
linq 是会进行延迟查询的,在查询之前组织才查询是会被转换成sql在数据库中执行
SqlFunctions.DateName在sql中是识别不了的.
select语句里面是不能写函数或方法的,因为在LINQ执行的时候,到最后的一步ToList()的时候才会执行查询,所以你嵌套在里面的函数就会报错的。不会将其转化为存储表达式
后来发现是EF版本的问题!!把6.0降到5.0就好了.