LINQ to Entities无法识别方法' Int32 Parse(System.String)'方法,

时间:2015-05-09 05:14:56

标签: c# linq entity-framework int int32

我正在使用Entity Framework,我有一行代码将字符串字段(id)转换为int并与数字进行比较

 students = students.Where(s => (Int32.Parse( s.id)>5555));

每当我尝试运行它时,我都会收到此错误。 " LINQ to Entities无法识别方法' Int32 Parse(System.String)'方法,并且此方法无法转换为商店表达式。"

我尝试了不同的东西,没有任何工作,所以任何帮助都会很棒。

1 个答案:

答案 0 :(得分:5)

首先,我强烈建议不要将列转换为int,否则会丢失列上的索引。您宁愿将int转换为字符串。但是,这是如何修复您的代码。

  1. 首先签署Contributor License Agreement
  2. 然后你fork the Entity Framework git repo
  3. 撰写一个新MethodCallTranslator.CallTranslator,其中Convert.ToInt32(string)将其替换为(int) string
  4. MethodCallTranslator.CallTranslator内注册新的MethodCallTranslator
  5. 为您的测试用例编写单元测试。
  6. 签入
  7. 创建拉取请求
  8. 等待
  9. 从nuget
  10. 下载新版本的Entity Framework