NHibernate 将字符串参数转换为 nvarchar 而不是 varchar。我怎样才能阻止这个?

2024-01-08

我有一个映射到视图的类,并且正在搜索名字和姓氏以搜索患者记录。该视图最终查看患者表上的名字和姓氏字段(也可能是其他字段,具体取决于输入)。当条件转换为 SQL 时,它会将我的字符串作为 nvarchar 参数输入。我已经在映射中使用了 type="AnsiString" 和 length="50",但它仍然将它们转换为 nvarchar,这对我的查询造成性能影响。

  <class name="PatientSearchResult" table="vw_PatientSearch" mutable="false" >
    <id name="Id" type="Guid" column="PatientId"/>

    <property name="MedicalRecordNumber" type="AnsiString" length="50" />
    <property name="Title" />
    <property name="FirstName" type="AnsiString" length="50" />
    <property name="MiddleName" />
    <property name="LastName" type="AnsiString" length="50" />
    <property name="Nickname" />
    <property name="Suffix" />
    <property name="DateOfBirth" />
    <property name="IsRestricted" />
    <property name="IsDeleted" />

    <component name="Address">
      <property name="StreetAddress1" />
      <property name="StreetAddress2" />
      <property name="City" />
      <property name="State" />
      <property name="PostalCode" />
    </component>

  </class>

SQL Profiler 将输出 SQL 显示为使用 nvarchar 参数,并在所有字符串前添加 N 前缀以进行转换。

我错过了什么吗?在标准或映射方面还需要做些什么吗?另外,参数的长度也不是常数50。我正在使用 NHibernate 2.1。


尝试在映射中使用 sql-type 属性:

<property name="FirstName" length="50" />
    <column sql-type="varchar(50)" />
</property>

您遇到什么性能问题?在我看来,将字符串视为 unicode 不太可能对性能产生太大影响。

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

NHibernate 将字符串参数转换为 nvarchar 而不是 varchar。我怎样才能阻止这个? 的相关文章

  • NHibernate:将 ICriteria 转换为 DetachedCriteria

    任何人都知道如何将 ICriteria 转换为 DetachedCriteria 我需要使用现有的 ICriteria 作为子查询的一部分 使用 Add Subqueries PropertyIn Name myDetachedCriter
  • Lightspeed 与 NHibernate

    有什么体验光速 http www mindscape co nz products LightSpeed comparison aspx Mindscape 提供的比较并没有过多说明 NHibernate Lightspeed 看起来很灵活
  • 如何判断一个引用的对象是否可以删除?

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

    假设以下场景 class Project public Job Job class Job public Name 假设我想使用 Criteria API 搜索其 Job 名称为 sumthing 的所有项目 我可以使用 CreateAli
  • NHibernate 克服 NotSupportedException

    有谁知道有什么方法可以克服 NotSupportedException 我有一个针对用户的方法 public virtual bool IsAbove User otherUser return HeirarchyString Starts
  • 如何在 NHibernate 中使用 READPAST 提示?

    有什么办法可以让 NHibernate 使用吗the READPAST hint https learn microsoft com en us sql t sql queries hints transact sql table从 SQL
  • 急于获取引用时重复(多对一)

    首先 是的 我正在使用 DistinctRootEntityResultTransformer 我有以下 Fluent NHibernate 映射 public FirstObjectMap Id x gt x Id HasMany
  • 对 id 属性使用自定义类型

    我有以下课程 public class UserId public UserId int id some validation public override string ToString public class User public
  • NHibernate Hi/Lo - id 中的间隙

    场景 Hi Lo 初始化为MyEntity与 Lo 100 桌子是空的 具有不同连接的两个会话都插入了三个项目 TableIds 1 2 3 100 101 102 如果稍后有第三个进来并插入三项 TableIds 200 201 202
  • 无法转换类型为“NHibernate.Collection.Generic.PersistentGenericBag”的对象

    public List
  • Sql 2008 文件流与 NHibernate

    我试图在 sql server 2008 中使用 Filestream 来存储用户上传的图像 我的问题是NHibernate不会出错 但它也不会将数据保存到数据库中 没有创建记录 下面的 Image 类是一个自定义类 不要与 System
  • NHibernate:将一个类映射到两个相同的表

    我需要将一个实体映射到两个表 Invoice 和 InvoiceHistory 我不能将两个数据库表合并为一个并添加一个状态列来区分它们 这两个表具有完全相同的结构 但是 正如名称所示 InvoiceHistory 保留旧发票的历史记录 而
  • NHibernate HiLo 生成和 SQL 2005/8 模式

    我手头上有一个问题 我花了几天时间寻找答案但无济于事 我们正在使用 HiLo Id 生成 一切似乎都工作正常 只要实体表处于同一架构中作为 hibernate unique key 表 表结构非常简单 我的 hi 值表在数据库中为 dbo
  • NHibernate:CreateCriteria 和 Exists 子句

    如何使用 CreateCriteria 编写以下 SQL SELECT FROM FooBar fb WHERE EXISTS SELECT FooBarId FROM Baz b WHERE b FooBarId fb Id 您可以这样做
  • 尽管 HQL 获取,Nhibernate 仍然生成代理

    我有以下 HQL 语句 select distinct t from TaskEntity as inner join fetch t Case as c inner join fetch c Client as client inner
  • NHibernate Session.Evict()

    我无法访问我面前的代码 所以我只是想知道是否有人可以帮助我解决 Session Evict 问题 假设我有一个包含地址子集合的 Person 对象 我从会话中填充 Person 对象并延迟加载 Addresses 集合 然后 我调用 Ses
  • NHibernate QueryOver SQLFunction in where 子句

    我想查询一个具有多行的表 每行都有一个timestamp数据每隔十分钟出现一次 我想找到任何丢失数据的开头 即没有timestamp等于接下来的十分钟间隔 如下所示 select a timestamp from table as a wh
  • NHibernate双向一对一映射问题

    当尝试在 NHibernate 中创建双向一对一映射时 我发现我无法递归地获得对象的引用 例如 假设我之间有一对一的关系Person and Address 然后执行以下代码后 class Person public Address Add
  • ASP.NET MVC 应用程序中的工作单元模式

    我一直在看这个优秀的blog http www nhforge org wikis patternsandpractices nhibernate and the unit of work pattern aspx标题为 NHibernat
  • 在 nHibernate 关系中使用实体的 Lite 版本?

    在某些情况下 出于性能原因 创建一个实体的轻量级版本 指向同一个表 但映射的列较少 这是一个好主意吗 例如 如果我有一个包含 50 列的联系人表 并且在一些相关实体中 我可能对 FirstName 和 LastName 属性感兴趣 那么创建

随机推荐