我正在使用EF CTP5 Code First与现有数据库进行开发。我需要通过比较不同类型的列从两个表中获取数据。将字符串列与Int列进行比较
例如 - 这里p.ColumnA
是varchar
作为q.ColumnA
是int
但这些值可能对于少数记录是相同的。所以,我试图做Convert.ToInt32
这是行不通的。我没有完全控制数据库来修改表。
from p in context.TableA
from q in context.TableB
where p.ColumnZ == "ABC" &&
(p.ColumnA == null || Convert.ToInt32(p.ColumnA) == q.ColumnA) &&
(p.ColumnB == null || p.ColumnB == q.ColumnB)
select p.ColumnC
有人可以提出解决方案吗?谢谢。
需要更多信息。是Convert.ToInt32抛出和异常?你是否有其他错误?究竟发生了什么? – alexD 2011-05-27 21:24:17
使用Convert.ToInt32时出现异常。例外:_“LINQ to Entities无法识别方法'Int32 ToInt32(System.String)'方法,并且此方法不能转换为存储表达式。”_ – MNIK 2011-05-27 21:26:27