【发布时间】:2013-05-14 00:45:51
【问题描述】:
我正在尝试将 table-per-subclass(默认情况下 fluent-nhibernate 自动映射)与如下类结构一起使用:
public class Product
{
public virtual int Id{ get; set; }
public virtual string Title{ get; set; }
}
public class ProductPackage : Product
{
public ProductPackage(){ Includes = new List<Product>(); }
public virtual IList<Prodcut> Includes{ get; private set; }
[EditorBrowsable( EditorBrowsableState.Never )]
public class ProductPackageAutoOverride : IAutoMappingOverride<ProductPackage>
{
public void Override( AutoMap<ProductPackage> mapping )
{
mapping.HasManyToMany( x => x.Includes )
.WithTableName( "IncludesXProduct" )
.WithParentKeyColumn( "ProductId" )
.WithChildKeyColumn( "IncludesProductId" )
.Cascade.SaveUpdate();
}
}
}
它没有添加新表“IncludesXProduct”来表示多对多映射,而是将属性“ProductPackageId”添加到 Product 表。当然,坚持这个模式是行不通的。
我是否遗漏了一些简单的东西,或者 NHibernate 并不真正支持这种类型的东西?
【问题讨论】:
标签: nhibernate inheritance fluent-nhibernate