不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
LINQ to Entities不识别方法XX因此该方法无法转换为存储表达式解决方法
编辑:dnawo 日期:2012-10-31
使用LINQ to Entities一不小心就会碰上类似的错误:
引用内容
总结了下,出现这种错误情形大体分为两种,下边分别举例并说下解决方法。
情形一
报错代码:
这边age是一个外部值,试图在LINQ to Entities进行类型转化,不支持,所以报错,只需在LINQ to Entities前先转化类型即可解决:
或是使用表达式树:
情形二
报错代码:
这边要转化的是字段值,因而无法像情形一那样在外部先处理,解决方法是将数据先从数据库读取出来,然后在内存中使用LINQ to Objects解决:

LINQ to Entities 不识别方法“XX”,因此该方法无法转换为存储表达式。
总结了下,出现这种错误情形大体分为两种,下边分别举例并说下解决方法。
情形一
报错代码:
复制内容到剪贴板
程序代码

string age = "20";
var query = from item in context.People
where item.Age == int.Parse(age)
select item;
var query = from item in context.People
where item.Age == int.Parse(age)
select item;
这边age是一个外部值,试图在LINQ to Entities进行类型转化,不支持,所以报错,只需在LINQ to Entities前先转化类型即可解决:
复制内容到剪贴板
程序代码

int age = int.Parse("20");
var query = from item in context.People
where item.Age == age
select item;
var query = from item in context.People
where item.Age == age
select item;
或是使用表达式树:
复制内容到剪贴板
程序代码

string age = "20";
Expression<Func<Person, bool>> exp = item => item.Age == int.Parse(age);
var query = context.People.Where(exp.Compile());
Expression<Func<Person, bool>> exp = item => item.Age == int.Parse(age);
var query = context.People.Where(exp.Compile());
情形二
报错代码:
复制内容到剪贴板
程序代码

var query = from item in context.People
group item by item.Created.ToShortDateString() into g
select new { Created = g.Key, Count = g.Count() };
group item by item.Created.ToShortDateString() into g
select new { Created = g.Key, Count = g.Count() };
这边要转化的是字段值,因而无法像情形一那样在外部先处理,解决方法是将数据先从数据库读取出来,然后在内存中使用LINQ to Objects解决:
复制内容到剪贴板
程序代码

var query = from item in context.People.ToList()
group item by item.Created.ToShortDateString() into g
select new { Created = g.Key, Count = g.Count() };
group item by item.Created.ToShortDateString() into g
select new { Created = g.Key, Count = g.Count() };
评论: 0 | 引用: 0 | 查看次数: 6008
发表评论
请登录后再发表评论!