NHibernate - 由指定的guid生成 - 正在覆盖Save()

jen*_*ent 1 nhibernate fluent-nhibernate

任何人都可以告诉我为什么即使我有这个映射:

mapping.Id().GeneratedBy.Assigned();
Run Code Online (Sandbox Code Playgroud)

我自己分配了我的实体的ID

打电话给

Session.Save(entity)
Run Code Online (Sandbox Code Playgroud)

导致新Guid与我在实体上分配的Guid不同?

jen*_*ent 5

Soo ..正在下载NHibernate&Fluent NHibernate源代码并与之斗争以使它们进行编译,然后我偶然发现:

s.Save(entity, entity.Id);
Run Code Online (Sandbox Code Playgroud)

这迫使它似乎使用提供的Id.

现在我感到沮丧和沮丧,并且很想知道为什么你需要为一些指定的id实体而不是其他人做这个...

Hrummphh

事实证明这是区别:

mapping.Id().GeneratedBy.Assigned();
Run Code Online (Sandbox Code Playgroud)

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

前者被接受但被忽视......