有人可以告诉我为什么即使我有这个映射:
mapping.Id().GeneratedBy.Assigned();
我自己分配了我的实体的ID
致电
后Session.Save(entity)
会导致新的Guid与我在实体上分配的Guid不同吗?
答案 0 :(得分:5)
Soo ..正在下载NHibernate&流利的NHibernate源和争取让他们编译,并走过我偶然发现:
s.Save(entity, entity.Id);
这迫使它似乎使用提供的Id。
现在我感到沮丧和沮丧,并且很想知道为什么你需要为一些指定的id实体做这个而不是为其他人...
<强> Hrummphh 强>
原来这是区别:
mapping.Id().GeneratedBy.Assigned();
和
mapping.Id(x => x.Id).GeneratedBy.Assigned();
前者被接受但被忽略......
答案 1 :(得分:1)
我经常使用已分配的GUID而没有任何问题。我认为你应该在你的Id属性的setter上设置一个断点,并在它被更改时检查调用栈。