2

我有一个名为“投标”的实体,以下是与此问题相关的代码:

班级:

public class Bid
{
    public virtual Guid Id { get; set; }
}

映射文件:

<id name="Id" column="Id" type="Guid">
  <generator class="guid.comb" />
</id>

Oracle 中的数据类型:

Raw(16)

当我保存“Bid”类型的新对象(Repository.Save(bid))时,C# 生成的 Id 是

db27b33c75314b41b171a1620130061a

保存在 oracle 表中的是

3CB327DB3175414BB171A1620130061A

如果你仔细看,id 的后半部分是一样的,但前半部分不是。

有人可以告诉我如何更改我的代码,以便 C# 生成的 Id 按原样保存?

我已经尝试过生成器类“assigned”和“guid.native”,并尝试在 oracle 中将数据类型更改为 varchar2(32),但无济于事。

4

2 回答 2

2

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

db27b33c 7531 4b41 b171a1620130061a

3CB327DB 3175 414B B171A1620130061A

这里有一些讨论:https ://nhibernate.jira.com/browse/NH-1429

于 2013-02-11T13:17:07.507 回答
0

对于来自谷歌的其他人,他们也是 nhibernate 和 mysql 的新手,在我更改的 .hbm.xml 文件中

<id name="Id" type="Guid">
  <generator class="guid" />
</id>

<id name="Id" type="Guid"/>

我的向导不再改变。

于 2014-08-03T01:56:51.123 回答