如何让 NHibernate 停止使用 nvarchar(4000) 来插入参数字符串?

2024-02-23

我需要优化由域实体上的保存(插入查询)生成的查询。我已经使用 Fluent NHibernate 配置了 NHibernate。

以下是 NHibernate 在插入用户对投票的响应期间生成的查询:

exec sp_executesql N'INSERT INTO dbo.Response (ModifiedDate, IpAddress, CountryCode, 
IsRemoteAddr, PollId) VALUES (@p0, @p1, @p2, @p3, @p4); select SCOPE_IDENTITY()',N'@p0
datetime,@p1 nvarchar(4000),@p2 nvarchar(4000),@p3 bit,@p4 int',
@p0='2001-07-08 03:59:05',@p1=N'127.0.0.1',@p2=N'US',@p3=1,@p4=2

如果查看输入参数IpAddress and CountryCode,人们会注意到 NHibernate 正在使用nvarchar(4000)。问题是nvarchar(4000)远远大于我所需要的IpAddress or CountryCode由于高流量和托管要求,我需要优化数据库的内存使用情况。

以下是这些列的 Fluent NHibernate 自动映射覆盖:

    mapping.Map(x => x.IpAddress).CustomSqlType("varchar(15)");
    mapping.Map(x => x.CountryCode).CustomSqlType("varchar(6)");

这不是我看到不必要的 nvarchar(4000) 弹出的唯一地方。

我该如何控制NHibernate的用法nvarchar(4000)用于字符串表示?

我该如何改变这个insert语句使用适当大小的输入参数?


指定Type as NHibernateUtil.AnsiString with a Length而不是使用 CustomSqlType。

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

如何让 NHibernate 停止使用 nvarchar(4000) 来插入参数字符串? 的相关文章

  • 如何删除 Sql Server 2005 中存在的临时 SP

    我的问题很简单 如何删除临时存储过程 如果存在 这是因为当我在脚本中创建临时 SP 时 它会在第二次运行时抛出类似 数据库中已存在名为 sp name 的对象 的错误 我不想向用户显示此消息 请帮我 您的解决方案受到高度赞赏 临时进程的删除
  • NVARCHAR 变量在Where 子句中不起作用

    在 SQL Server 我想是 2018 我不知道如何判断 中 我的变量不起作用WHERE的条款NVARCHAR 比较应该返回值 但它什么也没返回 如果我只是手动输入声明的文本 它会突然起作用并返回值 没有任何逻辑原因应该有任何不同 类型
  • 如何判断一个引用的对象是否可以删除?

    我有一个名为 Customer 的对象 它将在其他表中用作外键 问题是我想知道是否可以删除 客户 即 它没有在任何其他表中引用 Nhibernate 可以做到这一点吗 你所要求的是找到的存在CustomerPK值在引用表FK列中 有很多方法
  • Hibernate HQL:将对值作为 IN 子句中的参数传递

    我面临一个问题 如何使用 IN 子句将查询中的成对值的参数传递给 HQL 例如 select id name from ABC where id reg date in x y 并且参数是不同的数据类型string id 和reg date
  • NHibernate - 无法执行查询 - 输入字符串的格式不正确

    我已经为此摸不着头脑有一段时间了 我不知道出了什么问题 概述 我的 MySQL 数据库中有两个表 两者都正确映射到数据库 我可以加载数据 并且我能够查询一个表 但不能查询另一个表 我研究过的解决方案 表和 C 代码之间的类型转换问题 映射问
  • nHibernate 3 - Left Join re-Linq 解决方案

    我正在尝试使用 nHibernate 3 运行下面的 Linq 查询 var items from c in session Query
  • 通过 C# SqlCommand 执行合并语句不起作用

    我正在第一次尝试使用临时表和MERGE语句通过更新 SQL 表SqlCommandC 中的对象 我正在开发的程序旨在首先将大量记录 最多 20k 导出到 Excel 电子表格中 然后 用户可以搜索并替换特定值 并根据需要更新任意多记录中的任
  • 如何使用一个命令删除 SQL 数据库中的所有索引?

    那么 如何通过一条命令删除 SQL 数据库中的所有索引呢 我有这个命令可以获取所有 20 个左右的 drop 语句 但是如何从这个 结果集 运行所有这些 drop 语句呢 select from vw drop idnex 给我相同列表的另
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • 计算2个日期之间每个日期的记录数

    我必须创建一个查询来返回多轴图表的结果 我需要计算为 2 个日期之间的每个日期创建的 ID 数量 我试过这个 DECLARE StartDate datetime2 7 11 1 2020 EndDate datetime2 7 2 22
  • 需要在 SQL Server 中透视字符串值

    我有一个包含值的表 描述为 Occupation String Name String Developer A Developer B Designer X Coder Y Coder Z 我需要数据透视格式的值 Designer Deve
  • SQL Server 实例名称的最大长度?

    我需要知道以下版本的 SQL Server 实例名称的最大字符长度 如果它们之间存在差异 SQL Server 2000 SQL Server 2005 SQL Server 2008 SQL Server 2008 R2 我正在开发一个应
  • SSIS 包在 sql server 代理中失败,但在 Visual Studio 中失败。 ODBC 连接

    我有一个 SSIS 包 在 Visual Studio 2010 中运行良好 但作为 SQL Server 的一项作业 它在连接到 ODBC 数据库时失败 该项目使用密码对敏感数据进行加密 这是因为代理服务器不是我的帐户 也恰好是使用连接字
  • 具有多个实体查找器的通用 spring jpa 存储库

    我的应用程序有超过 250 个表 每个表都有 ID 和名称列 我正在尝试将我们的应用程序从 hibernate 3 迁移到带有 hibernate 5 的 Spring JPA 4 3 在我当前的休眠层中 我有 选项 1 public cl
  • 消息 203,级别 16,状态 2,不是有效标识符

    我收到以下错误 消息 203 级别 16 状态 2 过程 getQuestion 第 18 行名称 select top 1 from tlb Question inner join tlb options on tlb options q
  • 打开新EntityManager后线程锁

    我在使用 Spring JPA 事务时遇到一个非常奇怪的错误 该线程被锁定大约 16 分钟 然后继续 没有任何问题 情况如下 Transactional propagation Propagation REQUIRES NEW public
  • TransactionScope 是否需要开启 DTC 服务?

    根据我的阅读 为了在 NET 中使用 TransactionScope 您需要运行 Windows 中的分布式事务协调器服务 我有那个服务关掉 并且我的应用程序似乎运行相同并且回滚事务没有问题 我错过了什么吗 它如何能够发挥作用呢 我正在运
  • SQL Server 文件操作?

    使用 SQL Server 2005 如何使用 T SQL 将文件读入 SPROC 所以 假设我有一个像这样的 CSV 文件 ID OtherUselessData 1 asdf 2 asdf 3 asdf etc 我基本上想这样做 Sel
  • SQL Server:如果存在会大大减慢查询速度

    正在使用SQL Server 2012 我找到了一些关于查询优化的主题 并将 EXISTS 与 COUNT 进行比较 但我找不到这个确切的问题 我有一个看起来像这样的查询 select from tblAccount as acc join
  • 为什么 ISNUMERIC('.') 返回 1?

    最近我在 SQL Server 中使用 ISNUMERIC 时遇到了一个问题 导致找到了这段代码 SELECT ISNUMERIC 这会返回 1 如 true 所示 难道不应该像 false 一样返回 0 吗 See Numeric 损坏了

随机推荐

  • 使用 Keycloak Script Mapper 聚合声明中角色的属性

    我们有一个 Keycloak 脚本映射器来将角色的属性添加到 ID 令牌 目标是聚合角色属性中可用的值 映射器看起来像这样 Merge with concatenation for the values of attributes obta
  • pandas groupby 在具有聚合的列上[重复]

    这个问题在这里已经有答案了 我有一个像这样的数据框 userId category count A cat 24 B dog 26 A cat 32 C bird 21 D lion 6 D cat 32 C bird 22 我想要的结果是
  • .def 文件 C/C++ DLL

    我不明白将 def 文件与 DLL 一起使用的意义 看起来它取代了在 DLL 代码中使用显式导出的需要 即显式 declspec dllexport 但是在不使用这些文件时我无法生成 lib 文件 这会在稍后使用 DLL 时产生链接器问题
  • 为什么python线程数一开始是2?

    import threading print threading activeCount 输出 2 当这段代码保存到文件并运行时 既然是主线程怎么可能是2呢 当我们运行 foo py 文件时 除了主线程之外 Python 是否默认运行另一个
  • 在 Scala 中,为什么模式匹配没有选取 NaN?

    我的方法如下 def myMethod myDouble Double Double myDouble match case Double NaN gt case gt IntelliJ 调试器显示 NaN 但这在我的模式匹配中没有被识别出
  • Mathematica 中的“upvalue”是什么意思以及何时使用它们?

    To me g f g x h x 只是详细地等价于f g x h x 你能举一个你必须使用的例子吗 实际上 g f g x h x 不等于f g x h x 后者将定义与f while and 和它的 将定义与g 这是一个至关重要的区别
  • 如何以及何时使用 Html 编码

    我最近了解到 我不应该将 html 编码数据存储在数据库中 但我应该对用户屏幕上显示的数据进行 html 编码 没什么大不了的 我必须修复我的数据库记录并进行一些代码更改 但我的问题是 什么时候应该使用 html 编码 什么时候不应该使用
  • Spring Batch 和 Spring Integration 的集成问题 - “没有为端点定义轮询器”异常

    我经历了Spring 集成指南 http docs spring io spring integration reference html sftp html和例子在这里 https github com spring projects s
  • PHP exec() 不适用于 ffmpeg

    我尝试在 PHP 中运行以下命令 在 Ubuntu 上
  • Entity Framework Core 2.2:禁用特定实体的迁移

    我正在尝试在已创建数据库的现有系统上构建一个 aspnetcore 应用程序 并且我将在其上添加一些表 我对数据库进行了逆向工程 将现有表作为实体添加到我的应用程序中 并且我编写了自己的实体 稍后将添加这些实体 最后 所有实体都添加到单个
  • JQuery Mobile:聚焦输入文本不尊重 z-index,出现在其他所有内容之上

    我有一个带有 jQ uery Mobile 的 Android Phonegap 应用程序 在 HTC Desire 上 如果输入框获得焦点 则无论上面有哪些元素 它始终会转到前面 您是否尝试应用CSS属性 webkit transform
  • iOS - UISlider 的自定义图像

    我想为 UISlider 轨道使用图像 我不希望拇指的左边有一种颜色 右边有另一种颜色 我只想要一张横跨整个赛道的静态图像 可能的 要将图像设置到滑块 您可以使用设置最小轨迹图像 设置最大轨迹图像方法 根据您的要求 将两者设置为同一图像 i
  • 适用于打字稿的编辑器和调试器

    我正在开发一个nodejs 项目 其中所有代码都是用打字稿编写的 它遵循微服务模式 每个微服务都是一个独立的项目 因此需要同时打开和调试许多项目 我尝试了 webstorm 和 Visual Studio 使用 NTVS 但对它们都不满意
  • PYQT5画线[重复]

    这个问题在这里已经有答案了 def init self super init self title Main menu self left 80 self top 80 self width 1500 self height 1000 se
  • Oracle XML:跳过不存在的节点

    我在将 xml 数据插入到 oracle 表中时遇到问题 这是我的 xml
  • 简单的 Kafka Consumer 未收到消息

    我是 Kafka 的新手 正在运行一个简单的 Kafka 消费者 生产者示例 如上所示Kafka消费者 https kafka apache org 0102 javadoc index html org apache kafka clie
  • 生成随机确定性有限自动机的算法是什么?

    DFA 必须具有以下四个属性 DFA 有 N 个节点 每个节点有 2 个传出转换 每个节点都可以从其他每个节点访问 从所有可能性中以完全一致的随机性选择 DFA 这是我到目前为止所拥有的 从 N 个节点的集合开始 选择一个尚未选择的节点 将
  • 使用委托和 Lambda 的奇怪行为

    作为在我正在开发的库中引入惰性格式化评估的一种方法 我定义了委托 public delegate string MessageFormatterDelegate string message params object arguments
  • 什么是Android UiThread(UI线程)

    有人可以向我解释一下 UI 线程到底是什么吗 在developer android com上它提到了runOnUiThread函数 公共最终无效runOnUiThread 可运行操作 从以下版本开始 API 级别 1 在 UI 线程上运行指
  • 如何让 NHibernate 停止使用 nvarchar(4000) 来插入参数字符串?

    我需要优化由域实体上的保存 插入查询 生成的查询 我已经使用 Fluent NHibernate 配置了 NHibernate 以下是 NHibernate 在插入用户对投票的响应期间生成的查询 exec sp executesql N I