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

标签 c# linq entity-framework int int32

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

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

每当我尝试运行它时,我都会收到 rhis 错误。 “LINQ to Entities 无法识别‘Int32 Parse(System.String)’方法,并且无法将此方法转换为存储表达式。”

我已经尝试了几个不同的东西,但没有任何效果,所以任何帮助都会很棒。

最佳答案

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

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

关于c# - LINQ to Entities 无法识别方法 'Int32 Parse(System.String)' 方法,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30136302/

相关文章:

c# - IL 短格式指令不短?

.net - 使用 LINQ to SQL,其中数据库表可以有额外的列

entity-framework - Azure 移动应用服务 - 在 REST API 中强制加载子项

c# - 使用 LINQ 和 Entity Framework (核心)从一个 SQL 查询中的多个表中提取数据

c# - 对象实例已被处置(EF)

c# - 当 FCK 编辑器放置在更新面板中时如何从 FCK 编辑器获取编辑值

c# - 如何停止我的 asp.net 项目中的额外语言文件夹?

c# - LINQPad 如何引用其他类,例如LINQ in Action 示例中的书籍

c# - LINQ 性能计数 vs Where 和 Count

c# - 列表作为 linq 查询结果的属性