我目前正在使用Entity框架,我想在两列上执行带有连接的
Linq查询,一列是’String’类型,另一列是’Int32’类型.
Somethign类似于
from FirstEntity obj in context.FirstEntity
join SecondEntity obj2 in context.SecondEntity on obj.SecondEntityId equals obj2.Id.ToString()
obj.SecondEntityId为String,obj2.Id为Int32
不幸的是,EF看不到ToString操作.我遇到这个错误(或者一些类似的错误,如果我想将字符串转换为Int32):
LINQ to Entities无法识别方法’System.String ToString()’方法
直到现在,我无法找到一个解决方案.
感谢任何帮助.
最佳答案 我们通常会将这样的内容分解为2个查询(在linq中缺少ToString()实体支持会让我想要伤害小孩子).
var query1 = (from SecondEntity obj2 in context.SecondEntity
select obj2.ID).ToList();
// now we're using linq to objects which does support ToString()
query1 = query1.Select(x => x.ToString());
// mixing linq to entities and linq to objects
var query2 = from FirstEntity obj in context.FirstEneity
join SecondEntity obj2 in query1 on obj.SecondEntityId equals obj2.ID
我这样做没有VS,所以一些语法可能是错误的,这不是一个特别好的解决方案,但EF是V1.