Должен ли NHibernate генерировать SQL для параметра GUID без кавычек? - PullRequest
1 голос
/ 19 июля 2010

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 записей, даже если там есть Customer с таким идентификатором.

Тип данных столбца SQL Server UNIQUEIDENTIFIER.

<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 Ответ

0 голосов
/ 19 июля 2010

Это кажется правильным. Согласно this «мы должны помнить, что Guid - это не строка, даже если мы ее так видим. Guid - это 16-байтовая структура данных». Поэтому я не уверен, почему вы не получаете ожидаемых результатов, но я думаю, что сгенерированный SQL является правильным, поскольку не имеет кавычек.

...