FluentNhibernate HasManytoMany Relation - не добавляет в таблицу ссылок - PullRequest
0 голосов
/ 13 октября 2010

Использование fluentnhibernate У меня возникла проблема с вставкой таблицы ссылок.

Вот мои сущности

public partial class Item
{
    public virtual int Id
    {
        get;
        set;
    }

    public virtual string Description
    {
        get;
        set;
    }
    public virtual IList<Category> Categories
    {
        get;
        set;
    }
}
public partial class Category
{
    public virtual int Id
    {
        get;
        set;
    }

    public virtual string Name
    {
        get;
        set;
    }
    public virtual string Description
    {
        get;
        set;
    }
    public virtual IList<Item> Items
    {
        get;
        set;
    }
}

Вот мои сопоставления.

public class ItemMapping : ClassMap<Item>
{
    public ItemMapping()
    {
        Table("Item");
        Schema("dbo");
        Id(x => x.Id);
        Map(x => x.Description);
        HasManyToMany(x => x.Categories)
            .ChildKeyColumn("Item_id")
            .ParentKeyColumn("Category_id")
            .Table("CategoriesToItems")
            .AsSet();
        }
}

    public class CategoryMapping : ClassMap<Category>
{
    public CategoryMapping()
    {
        Table("Category");
        Schema("dbo");
        Id(x => x.Id);
        Map(x => x.Description);
        Map(x => x.Name);
        HasManyToMany(x => x.Items)
            .ChildKeyColumn("Category_id")
            .ParentKeyColumn("Item_id")
            .Table("CategoriesToItems")
            .AsSet();
    }
}

ЗдесьВот как я могу добавить его в коллекцию на моей странице MVC

var category = CategoryTask.Query(x => x.Id == post.Category).FirstOrDefault();

var item = new Item
                {
                    Categories = new List<Category> { category },
                    Tags = tags   
                };
ItemTasks.Save(item);

Мой вопрос, почему он не добавляет отношения в моей таблице ссылок "CategoriesToItems".Таблица уже находится в базе данных с Category_Id (FK, int, не нуль) и Item_Id (FK, int, не ноль).

В чем проблема?почему он не добавляет его в таблицу отношений?

Ответы [ 3 ]

0 голосов
/ 11 мая 2011

Вы также должны вызвать Session.Flush () как раз перед транзакцией .Commit ().

0 голосов
/ 16 января 2014

Я не уверен, была ли проблема решена, но она похожа на мою проблему ( fluentnhibernate hasmanytomany исключение идентификатора ).

Кроме того, похоже, что ваш родитель и ребенокключевые столбцы обратные.

0 голосов
/ 14 октября 2010

Трудно сказать, что на самом деле не так, когда мы не видим, что твое ItemTasks.Save делает под одеялом.Вы оборачиваете свое сохранение в транзакцию?Если нет, вы должны быть.

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