将 linq 中的字符串转换为大数据库上的实体

2023-11-25

我想将 linq toEntity 中的字符串转换为 int,但 Convert.ToInt32 和 int.Parse 无法转换为 sql 我的数据库很大,无法将它们全部存入内存(超过 60k 记录并变得更大) 我的查询是这样的

int myNumber = 1390;
var result = from dr in myEntitiy.TableX
             where (Convert.ToInt32(dr.stringYear) > myNumber) // <== error
             select dr; 

错误说无法翻译转换方法

LINQ to Entities 无法识别“Int32 ToInt32(System.String)”方法,并且此方法无法转换为存储表达式。

有什么解决办法

更新 : 如果没有办法做到这一点,请让我确定这一点,然后我必须更改数据库中的字段类型,但这会很困难:(


我认为以字符串形式进行比较是非常安全的,除非你的年数 9999:

... dr.stringYear.CompareTo(myNumberString) > 0

EF 将其转换为 SQL 谓词,例如

WHERE [alias].[stringYear] > @p

这在 SQL 中可行,但在 C# 中不行。

一个优点是任何索引stringYear可以在执行计划中使用。转换stringYear数字消除任何索引。

当字符串列包含锯齿状字符串值时,此方法仍然有用。在这种情况下,谓词应与长度结合起来。例如,查找任何数字字符串作为整数大于某个参考值的所有实体

var len = myNumberString.Lenght;

var query = 
    from row in context.LegacyTable
    where row.NumericString.CompareTo(myNumberString) > 0
       && row.NumericString.Length >= len
    select row; 

那么查询引擎就不能使用索引来进行长度比较,但它可能可以使用索引来进行长度比较。>比较。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 linq 中的字符串转换为大数据库上的实体 的相关文章

随机推荐

  • 按列而不是按行对结果进行排序

    SQL中可以按列排序而不是按行排序吗 我不需要基本的 ORDER BY 语句 我知道它们是如何工作的 即 按列 1 列 2 等排序 基本上尝试对这样的事情进行排序 column 1 column 2 column 3 1 0 3 尝试对此进
  • 如何检测用户是否启用了 Mac OS 高对比度辅助功能设置?

    我有一个 React TypeScript 项目 我试图检测用户是否启用了任何 Mac OS 的高对比度辅助功能设置 反转颜色 使用灰度 区分无颜色 增加对比度或增加的显示对比度设置 我想使用 JavaScript TypeScript 检
  • Windows 汇编堆和堆栈?

    操作系统 Windows 7 32位 所以像c 一样 有一个堆和一个堆栈 但我最近开始进行一些汇编学习 但没有看到任何类似的东西 只有一个堆栈 但它看起来就像纯粹的内存 那么堆和栈的实现是特定于 C 和其他语言的吗 或者您仍然在汇编中分配堆
  • 无法将 MyObject 类型的对象转换为 MyObject 类型

    我有这样的场景 我在 C 中使用的 Web 服务方法返回一个 Business 对象 当使用以下代码调用 Web 服务方法时 我在 reference cs 类中收到异常 无法将 ContactInfo 类型的对象转换为 ContactIn
  • Struts 2 s:选择标签动态id

    我在一个 JSP 页面和一个按钮中有多个不同类型的字段 这些字段是根据从我创建的元数据表中获取的信息生成的 由于我不知道存在多少个字段以及什么类型的字段 我给动态id给他们 我在 JSP 中使用 Struts 2 标签 问题在于
  • 如何在 gtk 中设置光标位置 -Linux、MonoDevelop

    好吧 所以我想我会进入 Linux 开发 然而 我发现你很难操纵鼠标和键盘 我的问题是 GTK 不支持这类事情 还是我错过了什么 在 Windows 中很简单 Point Pos new Point 20 20 Cursor Positio
  • LinQ 如何将 1 这样的整数更改为字符串 001

    我的数据库中有一个包含四列的表 string year string weeknr int number 在其他表中 我将这些列组合成yywwnnn作为字符串 数字列是标识列 现在我想从要与上述表连接的表中检索一些记录 就像是 from R
  • 如何在 C++ 中使用 python 库?

    我想使用nltkC 中的库 我可以使用胶水语言 机制来做到这一点吗 原因 我已经有一段时间没有用 C 进行任何认真的编程了 并且想同时修改 NLP 概念 Thanks 尽管从 python 调用 c libs 更为正常 您可以通过基本调用
  • 如何使用python从mp3文件中提取原始数据?

    我有关于使用 Python 进行音频数据分析的作业 我想知道是否有任何好的模块可供我用来从 mp3 文件中提取原始数据 我的意思是原始数据 而不是元数据 id3 标签 我知道如何使用wave要处理的模块 wav文件 我可以readframe
  • 带点的 DataTable 列名称为何不适合 WPF 的 DataGrid 控件?

    运行这个 你会感到困惑
  • 使用 PyQt4 进行核心转储

    我从 PyQt4 开始 在最简单的示例中使用 QGraphicsScene View 时面临核心转储 usr bin python import sys from PyQt4 QtCore import from PyQt4 QtGui i
  • Plotly Dash 表回调

    我试图让滑块 用户输入和表格之间的依赖关系发挥作用 我尝试输出数据并使用回调来更新它 建议我只在回调中创建表并使用 Div 定义其在显示中的位置 其他信息 表是使用 dash table 库从 pandas DataFrame 创建的 数据
  • $?VAR 在 csh 中意味着什么?

    我遇到过用 csh 编写的这段代码 if LM LICENSE FILE then setenv LM LICENSE FILE LmLicense else switch LM LICENSE FILE case LmLicense br
  • 通过 html 按钮更改变量

    我正在学习 javascript 我决定创建简单的石头剪刀布游戏 我想让它可以通过按钮控制 所以我用html做了这个 div div
  • 如何使用 UIWebView 加载包含哈希片段“#”的 NSURL?

    给定一个本地 URL 地址 例如 index html 现在我需要使用UIWebView将其加载到 iPad 中 我按照以下步骤操作 创建 NSURL NSURL url NSURL fileURLWithPath http mysite
  • 如何使用 xQuery 对转义的 XML 进行取消编码

    我在 xQuery 中有一个类型为 xs string 的变量 其值为编码的 HTML 片段 twitter 推文的内容 它看起来像这样 今日头条美联社来源 b 奥巴马 b 挑选 司法职位撤回 新闻 休息 世界 http shar es m
  • Swift:如何从我的应用程序到 iBooks 打开本地 pdf

    我之前是用objective c的 下面的 Objective C 代码运行良好 in h property retain UIDocumentInteractionController docController 并以 m 为单位 NSS
  • 滚动到 ScrollView 中 TableLayout 的最后一行

    我想要一个动态表 在 ScrollView 中使用 TableLayout 随着时间的推移 由于用户交互而添加行 这工作正常 但是当我想使用滚动到表格末尾时fullScroll 它总是省略最后一行 也就是说 它会滚动 以便最后一个之前的一个
  • Powershell - 通过删除最后几个字符来重命名文件名

    我想删除多个文件名的最后 11 个字符 例如 我有这些文件名 ABCDE 2015 10 20 HIJKL 2015 10 20 MNOPQ 2015 10 20 RSTUV 2015 10 20 想将它们重命名为 ABCDE HIJKL
  • 将 linq 中的字符串转换为大数据库上的实体

    我想将 linq toEntity 中的字符串转换为 int 但 Convert ToInt32 和 int Parse 无法转换为 sql 我的数据库很大 无法将它们全部存入内存 超过 60k 记录并变得更大 我的查询是这样的 int m