为什么在保存记录时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),但没有成功。

为什么在保存记录时Guid发生更改

第一部分也是相同的,但有不同的字节顺序。颠倒下面前三组中的每一组的字节顺序,你会看到:

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"/>

我的指导方针不再改变了。