2011-06-01 52 views

回答

4

有身份/序列和分配。來自NH documentation

5.1.5.1。生成器

對於支持標識 列(DB2,MySQL,Sybase,MS SQL), 的數據庫,您可以使用標識密鑰生成。 對於支持序列 (DB2,Oracle,PostgreSQL,Interbase, McKoi,SAP DB)的數據庫,可以使用序列 樣式密鑰生成。這兩個這些 策略都需要兩個SQL查詢來插入一個新對象 。

uid_sequence 對於跨平臺開發, native策略會從 選擇標識,序列和希洛 策略,取決於 能力的根本 數據庫。

5.1.5.7。分配的標識

如果您希望應用程序分配 標識符(而不是讓 NHibernate的生成它們),你可以使用 指定的發電機。這個特殊的 生成器將使用已分配給對象的 標識符屬性的標識符 值。在使用此功能時,請務必小心 以指定具有商業含義的鍵 (幾乎總是一個 糟糕的設計決策)。

由於其固有特性,使用此生成器的實體 不能通過ISession的 SaveOrUpdate()方法保存爲 。相反,如果通過調用 的 Save()或Update()方法保存或更新了對象 ISession,則 必須明確指定爲 NHibernate。

5

assigned表示在將實體保存在會話中之前,您在代碼中分配主鍵。

select表示它是由數據庫分配的,它是通過查詢某個唯一鍵從數據庫中獲得的。

相關問題