2010-07-19 72 views
1

Sql Server 2008 R2 Express。 NHibernate 2.1.2.4。NHibernate應該爲不帶引號的GUID參數生成SQL嗎?

我得到SQL這樣的:

SELECT customer0_.Id as Id1_0_ 
FROM customers customer0_ 
WHERE [email protected]; 
@p0 = 11111111-1111-1111-1111-111111111111 

...返回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> 

通過該鍛造我的方式,第一次,W /各種TUTS的幫助下進行配置。我已經過了好幾次,但沒有快樂。任何想法是什麼錯誤/在這裏丟失? TYIA!

+0

解決:問題實際上是由錯誤的測試數據造成的!我被一個事實所誤導,那就是我無法使用不帶引號或CAST/CONVERT的手動編寫的SQL來工作,但顯然當擴展參數時,有一些魔術使得這不必要。謝謝! – 2010-07-21 12:24:19

回答

0

這個好像是正確。根據this「我們必須記住Guid不是一個字符串,即使我們認爲這是一個字符串,Guid是一個16字節的數據結構。」所以我不確定爲什麼你沒有收回你期望的結果,但我認爲生成的SQL在沒有引號時是正確的。