EF Core 2.2,将字符串参数传递给 FromSql 语句

2024-03-03

public List<JC_PHASE_MASTER_TOTAL1_MC> GetAllByCompanyCodeJobNumber()
{
    return _context.JC_PHASE_MASTER_TOTAL1_MC.FromSql(
        $"SELECT * FROM JC_PHASE_MASTER_TOTAL1_MC WHERE (Job_Number = '  123')"
    ).ToList();
}

Corresponding SQL:

SELECT *
FROM JC_PHASE_MASTER_TOTAL1_MC
WHERE
    (Job_Number = '  123')

表中的 Job_Number 字段是 varchar,并且存储时使用前导空格来表示任何未使用的数字。当我使用硬编码的 Job_Number 运行上述函数时,查询按预期运行。但是,通过传递相同值作为参数生成的 SQL 如下所示,并且 SQL 运行似乎传递数字而不是字符串:

public List<JC_PHASE_MASTER_TOTAL1_MC> GetAllByCompanyCodeJobNumber(string jobNumber)
{
    return _context.JC_PHASE_MASTER_TOTAL1_MC.FromSql(
        $"SELECT * FROM JC_PHASE_MASTER_TOTAL1_MC WHERE (Job_Number = {jobNumber})"
    ).ToList();
}

Corresponding SQL with '   123' passed to the jobNumber string parameter:

SELECT *
FROM JC_PHASE_MASTER_TOTAL1_MC
WHERE
    (Job_Number = 123)

为什么传入 SQL 语句的字符串参数是 123 而不是“123”?我不确定如何调整我的函数,以便参数不作为数字传递。

根据已接受的解决方案修改后的代码:

public List<JC_PHASE_MASTER_TOTAL1_MC>GetAllByCompanyCodeJobNumber(string jobNumber)
{
    var jobNumberParameter = new SqlParameter("@jobNumber", SqlDbType.VarChar);
    jobNumberParameter.Value = jobNumber;

    return _context.JC_PHASE_MASTER_TOTAL1_MC.FromSql(
        $"SELECT * FROM JC_PHASE_MASTER_TOTAL1_MC WHERE (Job_Number = {jobNumberParameter})"
    ).ToList();
}

您是否尝试过显式设置 SQL 数据类型,例如:

public List<JC_PHASE_MASTER_TOTAL1_MC>GetAllByCompanyCodeJobNumber(string jobNumber)
{
    var jobNumberParameter = new SqlParameter("@jobNumber", SqlDbType.VarChar);
    jobNumberParameter.Value = jobNumber;

    return _context.JC_PHASE_MASTER_TOTAL1_MC.FromSql(
        $"SELECT * FROM JC_PHASE_MASTER_TOTAL1_MC WHERE (Job_Number = {jobNumberParameter})"
    ).ToList();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EF Core 2.2,将字符串参数传递给 FromSql 语句 的相关文章

随机推荐

  • Passport-jwt 令牌过期

    我正在使用 Passport jwt 生成我的令牌 但我注意到令牌永远不会过期 有没有办法根据为我设置的规则使特定令牌失效 例如 use strict const passport require passport const passpo
  • 为python配置Vs code 2.0.0版本构建任务

    我需要帮助来配置我的 Vs 代码以使用 Cntrl Shift B 在 python 中运行脚本 我工作得很好 直到 Vs 代码升级到版本 2 0 0 现在它要求我配置构建 我不知道构建是什么 过去 当我只需要配置任务运行程序时 它效果很好
  • 计算圆交点 O( (n+s) log n)

    我试图弄清楚如何设计一种算法 可以以 O n s log n 复杂度完成此任务 s 是交叉点的数量 我尝试在互联网上搜索 但找不到真正的东西 无论如何 我意识到拥有良好的数据结构是关键 我在java中使用红黑树实现 TreeMap 我还使用
  • Solr 索引 My SQL 时间戳或日期时间字段

    要在 Solr 中索引日期 日期应采用 ISO 格式 我们可以在不修改 SQL Select 语句的情况下索引 MySQL Timestamp 或 Date Time 字段吗 我用过
  • 如何使用 Flask 和 sqlalchemy 进行选择查询?

    我是 Flask 和 SQLAlchemy 的新手 我在 postgress 有一个数据库 该数据库有表 数据 200 条记录 我想做一个 Select 语句 但当我这样做时总是给我同样的错误 这是我的代码 这是我的模型 py from s
  • DateTime.AddYears 在闰年的行为

    在 DateTime 上使用 AddYears 方法时 任何人都可以解释 NET 中闰年计算背后的数学或简单推理吗 如果您将 2012 年 2 月 29 日加上一年 您将得到 2013 年 2 月 28 日 而不是 2013 年 3 月 1
  • 如何在 Scala 中为泛型类型提供默认类型类?

    在 Scala 中 如果你创建一个类型类 比如代数结构Monoid T 您可以为不同类型的幺半群提供许多默认类型类实现 假设幺半群定义为 trait Monoid T def op x T y T T def id T Since Stri
  • 具有三个表的递归 CTE

    我正在使用 SQL Server 2008 R2 SP1 我想通过 沿着树向上走 来递归地找到某个组织单位的第一个非空经理 我有一张包含组织单位 ORG 的表 一张包含每个组织的父级的表 ORG 中的单位 我们将该表称为 ORG PAREN
  • 如何清除 firebase 云消息通知?

    我使用firebase云消息向手机发送消息 并且可以成功接收通知 但在某些情况下 我不会单击通知来打开我的应用程序 而是手动打开应用程序以进入前台 我想要的是当我打开应用程序时 通知栏中的通知应该自动清除 以下代码将清除您的应用程序的所有通
  • 有没有办法更新云功能中的collectionGroup

    我正在构建一个聊天应用程序 当用户对其本地配置文件进行更新时 我想使用云功能在整个集合组中进行更新 我成功侦听云函数中的更新并检索具有以下内容的 collectionGroups 列表 const collectionGroupNamere
  • swift 不允许函数参数初始化吗?

    第一个块生成一个通用的 Swift 编译错误 甚至不指向该行 let screenDivision size width 5 var game1 SKSpriteNode color redColor size CGSize width 2
  • Nativescript:在路由器出口之间导航

    更好的介绍请参见关于奥特莱斯的博客文章 https www nativescript org blog using nested router outlets with nativescript and angular 我使用 TabVie
  • 如何在 Swagger UI 中删除“示例”组合框或更改其文本?

    我的 Swagger UI 有一个问题 它显示一个空的 示例 组合框 下图中标记为黄色 看起来不太好 有没有办法删除它或将其文本更改为有用的内容 我尝试添加example标签 但它不起作用 操作定义如下所示 post tags pet su
  • azurepipelines-coverage.yml 的架构,用于为 PR 配置新发布的代码覆盖率指标功能

    该功能已描述here https learn microsoft com en us azure devops release notes 2019 sprint 155 update code coverage metrics and b
  • 如何删除数据库,错误5030数据库无法锁定

    我正在尝试删除 SQL Server 2005 中的现有数据库 我的第一次尝试产生了以下错误 5030 数据库不能独占 锁定以执行操作 此后我已经杀死了所有正在访问数据库的进程 我还删除了它之前涉及的复制订阅 除了 SQL Server 进
  • 未出现写入 ILogger 的 Serilog (Azure Functions V2)

    我已安装 Serilog 并配置为将日志事件数据写入 MS SQL Server for Azure Function 中的表 系统日志和静态类本身写入的日志显示在表中 但是当我尝试使用 Extensions Logging ILogger
  • 核心数据和分页

    我有一个包含 50 000 条记录的数据库 我正在使用核心数据从搜索中获取记录 一次搜索可以轻松返回 1000 条记录 使用 core data 和 uitableview 来分页这些记录需要什么 我想一次显示 100 条记录 并在查看 1
  • iOS 中如何将字符串的一部分加粗?

    我想让文本字符串的某些部分变为粗体 Eg 这就是要大胆 这是正常的字符串 在Android中 可以通过使用可生成字符串轻松实现 iOS 中的等价物是什么 是的 可以通过以下方式实现NSAttributedString https devel
  • Laravel 用户特定的缓存

    我从来没有对缓存做过太多事情 但现在我正在尝试尝试一下 我有一个返回大量数据的仪表板 为了减轻负载 我像这样缓存数据 return cache gt rememberForever something function return aut
  • EF Core 2.2,将字符串参数传递给 FromSql 语句

    public List