У меня есть класс, сопоставленный с представлением, и я ищу по имени и фамилии, чтобы найти записи пациента. Представление в конечном итоге просматривает поля имени и фамилии в таблице пациента (возможно, и другие, в зависимости от ввода). Когда критерии преобразуются в 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.