为什么在保存记录时Guid发生更改
本文关键字:Guid 保存 记录 为什么 | 更新日期: 2023-09-27 17:58:35
我有一个名为"Bid"的实体,下面是与此问题相关的代码:
类别:
public class Bid
{
public virtual Guid Id { get; set; }
}
映射文件:
<id name="Id" column="Id" type="Guid">
<generator class="guid.comb" />
</id>
Oracle中的数据类型:
Raw(16)
当我保存类型为"出价"(Repository.Save(Bid))的新对象时,C#生成的Id是
db27b33c75314b41b171a1620130061a
保存在oracle表中的是
3CB327DB3175414BB171A1620130061A
如果你仔细看,id的后半部分是一样的,但前半部分不是。
有人能告诉我如何更改我的代码,使C#生成的Id保持原样吗??
我尝试过生成器类"assigned"answers"guid.nature",并尝试在oracle中将数据类型更改为varchar2(32),但没有成功。
第一部分也是相同的,但有不同的字节顺序。颠倒下面前三组中的每一组的字节顺序,你会看到:
db27b33c 7531 4b41 b171a1620130061a
3CB327DB 3175 414B B171A1620130061A
这里对此进行了一些讨论:https://nhibernate.jira.com/browse/NH-1429
对于来自谷歌的其他人,他们也是nhibernate和mysql的新手,在.hbm.xml文件中,我更改了
<id name="Id" type="Guid">
<generator class="guid" />
</id>
至
<id name="Id" type="Guid"/>
我的指导方针不再改变了。