在NHibernate中使用HBM文件将字典映射到子表
本文关键字:映射 字典 文件 NHibernate HBM | 更新日期: 2023-09-27 18:12:24
我有一个类似于这样的表结构,为了简洁而简化了
CREATE TABLE Parent (
ParentId NUMBER NOT NULL,
CONSTRAINT ParentId_PK PRIMARY KEY ParentId
);
CREATE TABLE Attribute (
ParentId NUMBER NOT NULL,
Key NVARCHAR2(200) NOT NULL,
Value NVARCHAR2(4000) NOT NULL,
CONSTRAINT Attribute_PK PRIMARY KEY (ParentId, Key),
CONSTRAINT ParentId_FK FOREIGN KEY (ParentId)
REFERENCES Parent (ParentId)
);
我想将子键和值映射到名称值对,并将列表存储为映射到父项的字典。其中代码看起来像这样:
public class Parent
{
public long Id { get; set; }
public Dictionary<string, string> Attributes { get; set; }
}
似乎这应该是可能的,但我似乎无法找出适当的映射放置在HBM文件
@Rippo -你的评论给我指出了解决方案,但我在这里发布代码是为了显示每个指导方针的解决方案。
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="com.so.answers" namespace="com.so.answers">
<class name="Parent" table="Parent" lazy="false">
<id name="Id" column="ParentId" />
<map name="Attributes" table="Attribute">
<key column="ParentId"/>
<index column="Key" type="System.String"/>
<element column="Value" type="System.String"/>
</map>
</class>
</hibernate-mapping>