12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
网络知识 时间:2024-11-25 15:06:11
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
在开发中,使用nHibernate连接Oracle数据库是极为普遍的。而在nHibernate中,使用GUID是一种非常方便的UUID,尤其是在Oracle中。那么,在Oracle中,使用nHibernate连接时,如何使用GUID
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
在开发中,使用nHibernate连接Oracle数据库是极为普遍的。而在nHibernate中,使用GUID是一种非常方便的UUID,尤其是在Oracle中。那么,在Oracle中,使用nHibernate连接时,如何使用GUID呢?
首先,在nHibernate中,可以使用GUID通过映射文件的方式进行指定。如下所示:
<id name="id" column="ID" type="Guid"><generator /></id>
其中,"generator" 标签负责生成GUID,它指定了GUID的生成方式,例如"guid.comb",它可以保证在32位且唯一。
在Oracle中,使用GUID还需要进行一些配置。因为Oracle本身并不支持GUID类型,所以需要手动配置Oracle数据库的UUID,例如:
CREATE OR REPLACE FUNCTION COMB_GUID (seed IN RAW) RETURN RAWISGUID RAW(16);BEGINSELECT SYS_GUID() INTO GUID FROM DUAL;RETURN SYS.DBMS_PICKLER.HASH (GUID || seed);END COMB_GUID;
在配置完之后,就可以在nHibernate中使用GUID了。下面是一个简单的示例代码:
using (ISession session = sessionFactory.OpenSession()){using (ITransaction tx = session.BeginTransaction()){User user = new User();user.Name = "JohnDoe";user.Email = "johndoe@email.com";user.Password = "password";user.CreatedAt = DateTime.Now;session.Save(user);tx.Commit();}}
在Code First模式下,也可以使用nHibernate自动生成映射文件。例如,在User类中添加一个 "Id" 属性:
public class User{public Guid Id { get; set; }public string Name { get; set; }public string Email { get; set; }public string Password { get; set; }public DateTime CreatedAt { get; set; }}
那么,在 "SessionFactory" 中需要添加一行配置,例如:
configuration.SetProperty(NHibernate.Cfg.Environment.UseProxyValidator, "false");new SchemaExport(configuration).Create(false, true);configuration.BuildMappings();
这样,nHibernate就会自动为 "User" 类创建一个映射文件,并且使用GUID作为数据库中的主键。
总之,在Oracle中使用nHibernate连接数据库时,GUID是一种非常好用的方法。但同时,Oracle中的GUID还需要手动进行一些配置。
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19