首页 新闻 会员 周边 捐助

Linq to Entity 取当前时间是第几周时出现如下问题

0
[已关闭问题] 关闭于 2013-04-15 21:16
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.

星隐的主页 星隐 | 初学一级 | 园豆:124
提问于:2013-04-09 18:31
< >
分享
所有回答(4)
0

先把数据放到内存里再处理,SQL 没有 DateName 这个函数。

geass.. | 园豆:1821 (小虾三级) | 2013-04-10 13:07
0

linq 是会进行延迟查询的,在查询之前组织才查询是会被转换成sql在数据库中执行

SqlFunctions.DateName在sql中是识别不了的.
平常心队长 | 园豆:1113 (小虾三级) | 2013-04-10 16:16
0

select语句里面是不能写函数或方法的,因为在LINQ执行的时候,到最后的一步ToList()的时候才会执行查询,所以你嵌套在里面的函数就会报错的。不会将其转化为存储表达式

不负春光,努力生长 | 园豆:1382 (小虾三级) | 2013-04-10 21:40
0

后来发现是EF版本的问题!!把6.0降到5.0就好了.

星隐 | 园豆:124 (初学一级) | 2013-04-15 21:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册