C# 使用HBM文件将字典映射到NHibernate中的子表

C# 使用HBM文件将字典映射到NHibernate中的子表,c#,nhibernate,hibernate-mapping,C#,Nhibernate,Hibernate Mapping,我有一个表结构,看起来与此类似,为简洁起见进行了简化 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, CON

我有一个表结构,看起来与此类似,为简洁起见进行了简化

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; }
}
公共类父类
{
公共长Id{get;set;}
公共字典属性{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>

您看到这个了吗?