Сопоставление производного класса с дополнительным свойством коллекции в nhibernate - PullRequest
0 голосов
/ 08 августа 2009

Я пытаюсь использовать таблицу для каждого подкласса (которая по умолчанию свободно использует 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?

1 Ответ

0 голосов
/ 11 августа 2009

Это можно сделать с помощью NHibernate. К сожалению, мой свободный синтаксис не очень хорош, но похоже, что FNH как-то рассматривает отношения как многие-к-одному, а не как многие-ко-многим.

Если вы пометите свой вопрос с помощью «fluent-nhibernate», то вы можете получить ответы от более знающих людей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...