Я пытаюсь использовать таблицу для каждого подкласса (которая по умолчанию свободно использует 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» в таблицу «Продукт». Конечно, сохранение этой схемы не работает.
Я пропустил что-то простое или этот тип вещей не поддерживается NHibernate?