手动设置ID

Mic*_*ick 7 nhibernate-mapping fluent-nhibernate

我有一个Users表,其中"ID"字段是GUID字段.

使用ASPNET我正在创建一个用户帐户并获取GUID.我正在尝试使用该GUID作为主ID在我的表中创建关联记录.

我遇到的问题是,当我手动设置Users.ID时,NHibernate尝试进行更新,而不是插入.我用NHibernate Profiler看到这个,然后用"意外行数:0;预期:1"进行轰炸.

用户的用户界面用户看起来像:

public class UsersMap : ClassMap<Users>
{
    public UsersMap()
    {
        Id(x => x.ID, "ID"); //GUID

        Map(x => x.Name, "Name"); //string
        Map(x => x.PhoneNumber, "PhoneNumber"); //string
        Map(x => x.FaxNumber, "FaxNumber"); //string
        Map(x => x.EmailAddress, "EmailAddress"); //string

        HasMany<UsersAddressBook>(x => x.usersAddressBook).KeyColumn("ID");
    }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?提前致谢.

Jam*_*ory 17

您需要指定将分配您的ID .

Id(x => x.ID)
  .GeneratedBy.Assigned();
Run Code Online (Sandbox Code Playgroud)

这将允许您指定值,而NHibernate不会尝试执行更新.