2
我有表CUSTOMER
其中CUSTOMER_ID
是主鍵。我想生成包括我的主鍵(不生成)NHibernate的插入。如何爲此Id映射列?
表
CREATE TABLE [CUSTOMER](
[CUSTOMER_ID] [int] NOT NULL,
[START_DATE] [varchar(30)] NOT NULL,
CONSTRAINT [PK_CUSTOMER] PRIMARY KEY CLUSTERED ([CUSTOMER_ID] ASC .....
映射
public class CustomerMap : ClassMap<Customer> {
public CustomerMap()
{
WithTable("CUSTOMER");
Id(x => x.CustomerID, "CUSTOMER_ID");
Map(x => x.Name, "NAME");
}
}
我需要處理手動CustomerID屬性的分配。例如,我使用CustomerID = 777創建了新的Customer並命名爲「stackoverflow」。
當我打電話方法Session.SaveOrUpdate(客戶); 我想NHibernate的生成我這樣的SQL:
INSERT INTO [CUSTOMER] ([CUSTOMER_ID] ,[NAME]) VALUES (777,'stackoverflow')
不幸的是我得到的錯誤。
主要這裏的問題是,NHibernate的嘗試爲我生成ID。但我想救我的實體正好與777
我覺得應該有辦法的ID建立映射()一些另闢蹊徑所以這將讓我做我想做的。
請幫忙。
感謝。 回答爲我的問題是手動設置我的ID屬性與添加GeneratedBy.Assigned(); Like here: Id(x => x.CustomerID,「CUSTOMER_ID」) .GeneratedBy.Assigned(); 我認爲我的情況比較特殊。 – 2010-02-03 12:32:33