Должен ли 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 является правильным, поскольку не имеет кавычек.

Другие вопросы по тегам