谁能告诉我为什么即使我有这个映射:
mapping.Id().GeneratedBy.Assigned();
我自己分配我的实体的ID
打电话后
Session.Save(entity)
导致新的 Guid 与我在实体上分配的 Guid 不同?
谁能告诉我为什么即使我有这个映射:
mapping.Id().GeneratedBy.Assigned();
我自己分配我的实体的ID
打电话后
Session.Save(entity)
导致新的 Guid 与我在实体上分配的 Guid 不同?
Soo.. 下载了 NHibernate 和 Fluent NHibernate 源并努力让它们编译,然后我偶然发现:
s.Save(entity, entity.Id);
这迫使它似乎使用提供的 ID。
现在我感到困惑和沮丧,很想知道为什么你需要为某些分配的 id 实体而不是为其他实体这样做......
赫伦夫
原来它是以下之间的区别:
mapping.Id().GeneratedBy.Assigned();
和
mapping.Id(x => x.Id).GeneratedBy.Assigned();
前者被接受但被忽略......
我经常使用分配的 GUID 没有问题。我认为您应该在设置器上为您的 Id 属性设置一个断点,并在更改调用堆栈时检查它。