Свободное владение Nhibernate: ссылка на многие из многих - PullRequest
3 голосов
/ 26 ноября 2010

С этим классом и отображением:

Public class Something
{
    public int Id;
    public IList<Something> Similarthings { get; set; }
}

public class SomtehingMapping
    {
        public SomtehingMapping()
        {
            Map(x => x.Id);
            HasManyToMany(x => x.Similarthings )
               .Table("SomethingsToSimilarthings")
               .ParentKeyColumn("SomethingA_Id")
               .ChildKeyColumn("SomethingB_Id")
               .Cascade.All();
         }
}

В итоге вы получите:

Table SomethingsToSimilarthings
-------------------------------
SomethingA_Id    SomethingB_Id
111              222
222              111

Есть ли способ определить это отображение, чтобы двунаправленное отношение выражалось с использованием только одной строки базы данных?

1 Ответ

1 голос
/ 27 ноября 2010

Вы пытались настроить атрибут отображения обратный на true как этот?

public class SomtehingMapping
    {
        public SomtehingMapping()
        {
            Map(x => x.Id);
            HasManyToMany(x => x.Similarthings )
               .Inverse()
               .Table("SomethingsToSimilarthings")
               .ParentKeyColumn("SomethingA_Id")
               .ChildKeyColumn("SomethingB_Id")
               .Cascade.All();
         }
}

Альтернативой может быть явное определение другой стороны ассоциации и пометка этого как inverse="true"

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