asp.net-mvc - 在 MVC 中,如何从数据库中检索与包含数字的字符串序列号范围匹配的记录?
问题描述
我有一个使用 Code First Entity Framework 的 MVC 应用程序。
我的数据库中有序列号的记录,这些序列号是字符串,以及字母和数字的组合。最后 4 始终是数字部分。
我正在尝试检索范围 A 和 B 之间的所有记录,例如从SERIAL-NO-0020到SERIAL-NO-0050
我无法将字符串编号部分转换为整数,因为 Linq To Entities 不支持它。因此,作为获取序列号高于 20 的所有记录的示例,这不起作用:
var records = context.SerialNumbers.Where(m => Convert.ToDecimal(m.SerialNo.Substring(10, 4)) > 20).ToList();
有没有办法在不首先从数据库中提取所有记录并进一步过滤的情况下做到这一点?
解决方案
您可以编写 SP 并在 Linq 的帮助下访问此 SP(存储过程),而不是编写查询。在 SP 中,您可以先拆分记录,然后进行比较。它还将花费更少的时间并提高性能。
推荐阅读
- twitter - 在画面仪表板中显示 twitter 实时提要
- shell - 将文本从 HttpStatus.NOT_FOUND 转换为 bash 中的 status().isNotFound()
- ruby - 从 CSV 在 Rails 中添加行
- angular - 使用反应式表单在 Angular 中检查后,表达式发生了变化
- javascript - 当鼠标快速通过元素时,onMouseEnter 不起作用
- ios - 如何使用 UICollectionViewFlowLayout 使集合中的每个视图居中?
- json - 如何从 SQLITE UNION 查询中获取单个 JSON 对象?
- java - 无法在 Java 应用程序中加载 JDBC 驱动程序类 [oracle.jdbc.driver.OracleDriver]
- php - PHP - 在回调函数的深层传递参数
- javascript - Javascript 对象 ID 字段未传递给事件处理程序