首页 新闻 搜索 专区 学院

Oracle 的 Guid 字段如何在NHibernate里面应该是什么类型?

0
悬赏园豆:100 [已关闭问题] 关闭于 2009-10-01 12:57

由于历史原因,在Oracle数据库里面有很多Guid类型。问题:
1. Guid字段在Oracle里面应该是什么类型?(char(38) 还是 raw(16)?)
2. 在NHibernate 里面应该怎么写?(其实我是用的Castle的ActiveRecord,基于NHibernate。最好有例子)
我试了不同的写法,都报类型转换错误。
谢谢各位大侠啦。

问题补充: 最后是通过修改NHibernate源代码的方法解决的,详细内容请看这里:http://www.cnblogs.com/1-2-3/archive/2009/10/01/Oracle-NHibernate-Guid.html
1-2-3的主页 1-2-3 | 初学一级 | 园豆:200
提问于:2009-09-21 14:12
< >
分享
所有回答(2)
0

这个可以问一下李永京

http://home.cnblogs.com/lyj/

邀月 | 园豆:25375 (高人七级) | 2009-09-21 17:02
0

不好意思啊,我现在没弄过Oracle,都用的是MsSQL

Oracle是RAW(16)

使用Guid即可,也可以使用2.1新增的guid.native。允许使用数据库管理系统的native函数产生的GUID 。与“序列(sequence)”生成器相似:当保存一个新的对象时候NH执行两个查询;首先查询GUID值,然后在使用数据库管理系统生成的GUID插入实体。实体主键的类型是System.Guid。

  <id name="id">
     <generator class="guid.native"/>
  </id>

在Oracle下运行结果如下:

  1. select rawtohex(sys_guid()) from dual
  2. INSERT INTO MyEntityTable (Id, Description) VALUES (:p0, :p1)
李永京 | 园豆:3114 (老鸟四级) | 2009-09-22 09:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册