我想生成插入,其中包括我的主键(未生成)由NHibernate。如何为此映射Id列?

我想生成插入,其中包括我的主键(未生成)由NHibernate。如何为此映射Id列?,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,我有一个表CUSTOMER,其中CUSTOMER\u 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&l

我有一个表
CUSTOMER
,其中
CUSTOMER\u 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");
    }
}
不幸的是,我有错误

这里的主要问题是Nhibernate试图为我生成ID。但我想用777保存我的实体

我认为应该有另一种方法来设置Id()的映射,这样我就可以随心所欲了


请提供帮助。

根据您的NHibernate映射方式(fluent或hbm),您可以设置ID属性以手动分配ID。我相信默认设置是让服务器分配ID。

谢谢。我的问题的答案是通过添加GeneratedBy.Assigned()手动设置我的ID属性;如下所示:Id(x=>x.CustomerID,“CUSTOMER_Id”).GeneratedBy.Assigned();我认为我的情况很特殊。
INSERT INTO [CUSTOMER] ([CUSTOMER_ID] ,[NAME]) VALUES (777,'stackoverflow')