Должен ли NHibernate генерировать SQL для параметра GUID без кавычек?
SQL Server 2008 R2 Express. NHibernate 2.1.2.4.
Я получаю SQL как:
SELECT customer0_.Id as Id1_0_
FROM customers customer0_
WHERE customer0_.Id=@p0;
@p0 = 11111111-1111-1111-1111-111111111111
... который возвращает 0 записей, хотя там есть Клиент с этим идентификатором.
Тип данных столбца SQL Server является УНИКАЛЬНЫМ.
<session-factory>
настроен следующим образом:
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
класса <id>
настроен следующим образом
<id name="_id" column="Id" type="Guid" access="field" unsaved-value="00000000-0000-0000-0000-000000000000" >
<generator class="guid.comb" />
</id>
Впервые пройдя через это, с помощью различных средств. Я прошел через все несколько раз, но не радости. Есть идеи, что здесь не так? TYIA!
1 ответ
Решение
Это кажется правильным. В соответствии с этим "мы должны помнить, что Guid - это не строка, даже если бы мы ее видели. Guid - это 16-байтовая структура данных". Поэтому я не уверен, почему вы не получаете ожидаемых результатов, но я думаю, что сгенерированный SQL является правильным, поскольку не имеет кавычек.