是否可以将NHibernate类型鉴别器用作外键的一部分

是否可以将NHibernate类型鉴别器用作外键的一部分,nhibernate,Nhibernate,采用以下对象模型: public abstract class Entity { public Guid Id { get; set; } } public class Category : Entity { public string Name { get; set; } public ICollection<LocalizedProperty> LocalizedProperties { get; set; } } public class Prod

采用以下对象模型:

public abstract class Entity
{
    public Guid Id { get; set; }
}

public class Category : Entity
{
    public string Name { get; set; }

    public ICollection<LocalizedProperty> LocalizedProperties { get; set; }
}

public class Product : Entity
{
    public string Name { get; set; }

    public ICollection<LocalizedProperty> LocalizedProperties { get; set; }
}

public class LocalizedProperty : Entity
{
    public string CultureName { get; set; }
    public string PropertyName { get; set; }
    public string PropertyValue { get; set; }
}
我知道这是可能的,使用每个子类的表映射,其中我的每个“本地化”实体都继承自一个基本的本地化实体类,而该实体类又与LocalizedProperty关联。然而,如果上述情况可行,我宁愿不要这种额外的继承级别

谢谢, 本

更新

感谢Diego使用confORM提供解决方案。对于那些使用传统映射文件的人,我已将示例从


您可以使用


有关完整示例,请选中。我想这正是您所需要的。

基于nhforge示例,当我努力想看到它时,您能解释一下我将如何在示例中使用此映射吗?这看起来很完美。你知道这是否可以通过传统的映射实现,还是特定于一致性?Ben你可以毫无问题地使用xml映射。可能也很流利(没试过)非常感谢。我能够使用confORM生成映射文件。
LocalizedProperties
-------------------
Id
EntityType
EntityId
CultureName
PropertyName
PropertyValue
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" namespace="ConfOrm.UsageExamples.CreateXmlMappingsInBinFolder" assembly="ConfOrm.UsageExamples" xmlns="urn:nhibernate-mapping-2.2">
  <class name="Blog">
    <id name="Id" type="Guid">
      <generator class="guid.comb" />
    </id>
    <property name="Title" />
    <property name="Subtitle" />
    <set name="Tags" cascade="all" where="TagedItemClass = 'ConfOrm.UsageExamples.CreateXmlMappingsInBinFolder.Blog'">
      <key column="TagedItemId" foreign-key="none" />
      <one-to-many class="Tag" />
    </set>
  </class>
</hibernate-mapping>

<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" namespace="ConfOrm.UsageExamples.CreateXmlMappingsInBinFolder" assembly="ConfOrm.UsageExamples" xmlns="urn:nhibernate-mapping-2.2">
  <class name="Tag">
    <id name="Id" type="Guid">
      <generator class="guid.comb" />
    </id>
    <property name="Name" />
    <any id-type="Guid" name="TagedItem">
      <column name="TagedItemClass" />
      <column name="TagedItemId" />
    </any>
  </class>
</hibernate-mapping>