Я пытаюсь создать запрос Criteria для выбора объектов, которые связаны через таблицу ассоциации.
Insurer * - 1 Insurer_Section 1 - * Section
InsurerSection имеет атрибут ассоциации: активный: bool.
Как получить всех страховщиков, чей активный атрибут в классе InsurerSection имеет значение true?
PS: я не могу так:
Insurer.FindAll(
DetachedCriteria.For<Insurer>().CreateCriteria("Insurer_Section").Add(Expression.Eq("Active", true)
);
потому что Insurer_Section является таблицей ассоциации, которая отображается только через HasAndBelongsToMany:
[HasAndBelongsToMany(typeof(Section), Table = "`Insurer_Section`",
ColumnKey = "`IdInsurer`", ColumnRef = "`IdSection`",
Cascade = ManyRelationCascadeEnum.AllDeleteOrphan)]
private IList<Section> Sections {
get { return this.sections; }
set { this.sections = value; }
}
И
[HasAndBelongsToMany(typeof(Insurer), Table = "`Insurer_Section`",
ColumnKey = "`IdSection`", ColumnRef = "`IdInsurer`",
Cascade = ManyRelationCascadeEnum.None, Inverse = true)]
public IList<Insurer> Insurers {
get { return this.insurers; }
set { this.insurers = value; }
}