gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:02:48 26 4
gpt4 key购买 nike

我有一个映射到 View 的类,正在搜索名字和姓氏以搜索患者记录。该 View 最终会查看患者表中的名字和姓氏字段(可能还有其他字段,具体取决于输入)。当条件转换为 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 似乎不太可能对性能产生如此大的影响。

关于NHibernate 将字符串参数转换为 nvarchar 而不是 varchar。我怎样才能阻止这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com