var messages = (from sms in
(from m in rv.tbl_sms_messages
where m.idtbl_user == ids.id
where m.sms_date >= days.days7
orderby m.sms_date descending
select m)
.Take(15)
.AsEnumerable()
select new last10msgs
{
dat = SqlFunctions.StringConvert((double)SqlFunctions.DatePart("dd",sms.sms_date)) + " "
+ SqlFunctions.DateName("mm", sms.sms_date), message = sms.message
}).AsEnumerable();
从EF4更新到EF6 +后发现错误:
只能从LINQ到Entities调用此函数。
问题是,当您尝试使用SqlFunctions
时,您已经完成了数据库操作。在运行查询并将结果存储到对象之前,必须放置这些函数。调用AsEnumerable
后,查询完成。因此,简短的答案是将包含这些功能的逻辑移至针对DB运行的查询(在Take
子句之前)