【发布时间】:2015-03-23 10:12:14
【问题描述】:
是否可以在 NHibernate 上覆盖映射的属性类型(hbm.xml 文件,不流畅)?
上下文: 我正在开发基本上连接在 SQL Server(LEGACY DATABASE SCHEMA)上的应用程序,但它也必须在某些 Oracle 数据库上工作。我们有很多实体,我们放弃了保留两个版本的映射文件,因此我们决定定义一个基本映射(SQL Server)并进行一些指导性修改以便在 Oracle 上工作(如 id 生成器、列和表名,...)。
现在我们遇到了 LONG Oracle 字段(LEGACY OBSOLETE FIELD TYPE)的新问题,它在 NHibernate 上不起作用,我们必须定义一个自定义 IUserType (http://sonyarouje.com/2012/11/07/nhibernate-and-oracle-long-varchar-field/),这个解决方案与 SQLServer 兼容,但是它需要 DLL Oracle.DataAccess.dll,为了避免这个有问题的 dll,我们只会在我们连接 Oracle 时在运行时设置这个自定义类型。但是属性的成员类型(NHibernate)是只读的,我还没有找到任何方法来设置它。
我正在使用 NHibernate 3.3。
【问题讨论】:
标签: c# oracle nhibernate