Отношения многие ко многим.NHibernate + ConfORM - PullRequest
1 голос
/ 17 февраля 2012

Я впервые на этом форуме, я из Бразилии, рад знакомству!

Вот что у меня сложилось много-много-много отношений:

public class Assessoria : Empresa {
    // others fields
    private IList<Produto> _produtos;

    // others getters and setters
    public virtual IList<Produto> produtos {
        get { return _produtos; }
        set { _produtos = value; }
    }

    public Assessoria() {
        produtos = new List<Produto>();
    }
}

и

public class Produto : Entidade {
    // others fields
    private IList<Assessoria> _assessorias;

    // others getters and setters
    public virtual IList<Assessoria> assessorias {
        get { return _assessorias; }
        set { _assessorias = value; }
    }

    public Produto() {
        assessorias = new List<Assessoria>();
    }
}

и моя конфигурация:

orm.Cascade<Assessoria, Produto>(Cascade.All);
orm.ManyToMany<Assessoria, Produto>();

orm.Patterns.Lists.Remove(orm.Patterns.Lists.Single(p => p.GetType() == typeof(ListCollectionPattern)));

в базе данных я получил таблицы:

-- EMPRESA is parent of ASSESSORIA
CREATE TABLE EMPRESA (
    ID              INTEGER NOT NULL,
    CLASS        VARCHAR(255) NOT NULL,
    -- others fields, not relevant
);
--and
CREATE TABLE PRODUTO (
    ID           INTEGER NOT NULL,
    -- others fields, not relevant
);

--and the relationship table
CREATE TABLE ASSESSORIAPRODUTO (
    PRODUTO_KEY     INTEGER NOT NULL,
    ASSESSORIA_KEY  INTEGER NOT NULL
);

Хорошо, когда я пытаюсь сохранить объект«Продукт» сначала, а после сохранения «Ассессория», работает отлично!Но когда я пытаюсь сохранить объект «Assessoria» первым, а после «Product», запись не вставляется в таблицу отношений, т. Е. Она выполняет отношения.Пожалуйста, помогите мне, ребята, и извините за мой английский!

...