Беглое автоматическое отображение двунаправленных отношений NHibernate

Я пытаюсь автоматизировать свою модель предметной области с помощью беглого nhibernate. В этом конкретном случае у меня есть двунаправленное отношение «один ко многим», которое мне нужно сопоставить. Проблема в том, что он автоматически реализует это не как двунаправленное отношение, а как два разных отношения вместе и создает отдельный внешний ключ для каждого.

Как мне сказать беглому nhibernate, что это то же самое? Надеюсь, я достаточно ясен.


person Ali Kazmi    schedule 03.09.2009    source источник


Ответы (1)


Вы можете переопределить автокарту с помощью 1.0RC. Попробуйте этот пример из двунаправленного сопоставления SharpArchitecture от сотрудника к территории, где территория является обратной зависимостью:

   public class EmployeeMap : IAutoMappingOverride<Employee>
     {
        public void Override(AutoMap<Employee> mapping) {

        //... other omitted mappings...

        mapping.HasManyToMany<Territory>(x => x.Territories)
            .WithTableName("EmployeeTerritories")
            .WithParentKeyColumn("EmployeeID")
            .WithChildKeyColumn("TerritoryID")
            .AsBag();
    }
}

   public class TerritoryMap : IAutoMappingOverride<Territory>
{
    public void Override(AutoMap<Territory> mapping) {

        //... other omitted mappings...

        mapping.HasManyToMany<Employee>(x => x.Employees)
            .WithTableName("EmployeeTerritories")
            .Inverse()
            .WithParentKeyColumn("TerritoryID")
            .WithChildKeyColumn("EmployeeID")
            .AsBag();
    }
}
person Kurt Johnson    schedule 10.09.2009