NHibernate是否应该为GUID参数生成SQL而不带引号?

时间:2010-07-19 16:40:30

标签: sql-server nhibernate guid generated-sql

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

...即使在那里有Customer,也会返回0条记录。

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 :(得分:0)

这个似乎正确。根据{{​​3}}“我们必须记住,Guid不是一个字符串,甚至认为我们是如何看待它们的.Guid是一个16字节的数据结构。”所以我不确定你为什么不回复你期望的结果,但我认为生成的SQL在没有引号的情况下是正确的。