1

谁能告诉我为什么即使我有这个映射:

mapping.Id().GeneratedBy.Assigned();

我自己分配我的实体的ID

打电话后

Session.Save(entity)

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

4

2 回答 2

5

Soo.. 下载了 NHibernate 和 Fluent NHibernate 源并努力让它们编译,然后我偶然发现:

s.Save(entity, entity.Id);

这迫使它似乎使用提供的 ID。

现在我感到困惑和沮丧,很想知道为什么你需要为某些分配的 id 实体而不是为其他实体这样做......

赫伦夫

原来它是以下之间的区别:

mapping.Id().GeneratedBy.Assigned();

mapping.Id(x => x.Id).GeneratedBy.Assigned();

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

于 2012-12-15T13:05:32.680 回答
1

我经常使用分配的 GUID 没有问题。我认为您应该在设置器上为您的 Id 属性设置一个断点,并在更改调用堆栈时检查它。

于 2012-12-14T18:35:23.437 回答