【发布时间】:2017-06-28 06:15:50
【问题描述】:
问题
如何使用相同的.hbm配置映射字典集合跨数据库?
场景
我正在尝试映射字典属性:
Dictionary<string, string> Phrases { set; get; }
使用以下 .hbm 配置:
<map
name="Phrases"
cascade="save-update"
table="ATTRIBUTE_LOCALE"
lazy="true">
<key column="RESOURCE_ID" /> <!-- foreign key -->
<index column="LOCALE_NAME" type="string" />
<element column="PHRASE" type="string" />
</map>
下面是MS SQL的[ATTRIBUTE_LOCALE]的表创建SQL:
CREATE TABLE ATTRIBUTE_LOCALE (
CUID int IDENTITY(1, 1) NOT NULL,
RESOURCE_ID int NOT NULL,
FIELD_NAME nvarchar(255) DEFAULT 'VALUE' NOT NULL,
LOCALE_NAME nvarchar(255) NOT NULL,
PHRASE ntext NULL
);
但如果我将数据库从 MS SQL Server 更改为 Oracle 并且 Oracle 数据库无法使用 IDENTITY(1, 1) 自动生成主键。在 Oracle 中,由于插入主键为 NULL 的表,我会遇到一些麻烦。
我该如何解决这个问题?
【问题讨论】:
标签: c# mysql oracle nhibernate