我有一个名为'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)
当我保存“Bid”类型的新对象(Repository.Save(bid))时,C#生成的Id为
db27b33c75314b41b171a1620130061a
,保存在oracle表中的那个是
3CB327DB3175414BB171A1620130061A
如果仔细观察,id的后半部分是相同的,但上半部分不是。
有人能告诉我如何更改我的代码,以便C#生成的Id保存原样?
我已经尝试过生成器类'assigned'和'guid.native',并尝试在oracle中将数据类型更改为varchar2(32),但无济于事。
答案 0 :(得分:2)
第一部分也是相同的,但具有不同的字节顺序。反转下面前三个组中每个组的字节顺序,你会看到:
db27b33c 7531 4b41 b171a1620130061a
3CB327DB 3175 414B B171A1620130061A
答案 1 :(得分:0)
对于其他来自谷歌的人,他们也是nhibernate和mysql的新手,在.hbm.xml文件中我改变了
<id name="Id" type="Guid">
<generator class="guid" />
</id>
到
<id name="Id" type="Guid"/>
我的guids退出了。