У меня есть некоторые проблемы при отображении сложных отношений многие ко многим в fluentnhibernate.У меня есть устаревшая БД, которая выглядит примерно так:
Foos: |Id |Фу |
FooBars: |FooId |BarId |
Бары: |Id |Бар |CultureId |
, который я пытаюсь сопоставить со следующей объектной моделью:
class Foo
{
property virtual int Id { get; set; }
property virtual string Foo { get; set; }
property virtual IList<Bar> Bars { get; set; }
}
class Bar
{
property virtual int Id { get; set; }
property virtual int CultureId { get; set; }
}
с сопоставлениями:
public class FooMapping : ClassMap<Foo>
{
public FooMapping()
{
Table("foos");
Id(v => v.Id);
Map(v => v.Foo);
HasManyToMany(v => v.Bars)
.Table("FooBars")
.ParentKeyColumn("FooId")
.ChildKeyColumn("BarId")
.Cascade.All();
}
}
public class BarMapping : ClassMap<Bar>
{
public BarMapping()
{
Table("bars");
Id(v => v.Id);
Map(v => v.Bar);
Map(v => v.CultureId);
}
}
Проблема в том, что у меня несколько баров содин и тот же идентификатор для различных идентификаторов культур
например,
У меня была бы таблица, которая выглядит следующим образом:
Id | Bar | CultureId
1, Hello, 1
1, Bonjour, 2
1, Gutentag, 3
В настоящий момент свойство Bars для приведенной выше таблицы возвращает 3 элемента, но свойство Bar на нем будетверните «Hello» для всех трех элементов (предположительно, потому что они все имеют одинаковую идентичность).Поэтому мой вопрос: как я могу остановить это или . Может ли кто-нибудь предложить способ фильтрации строк, которые не имеют правильного идентификатора культуры (обратите внимание, это динамично и основано на текущей культуре)?