Свободное владение nhibernate 1.2. Самостоятельная отсылка многих ко многим с обратной коллекцией. - PullRequest
1 голос
/ 22 июня 2011

Я только что перешел с nHib 2.1.2 с беглым nHib 1.2 до nHib 3.1 с последним беглым nHib (также 1.2). теперь, неожиданно, я получаю исключение для сопоставления для моей сущности Employee.
Сотрудник содержит список управляемых сотрудников, а также обратный список руководителей.
вот так:

public virtual IEnumerable<Employee> ManagedEmployees { get; private set; }
public virtual IEnumerable<Employee> Managers { get; private set; }

Я использую Automapping, и это переопределение отображения, которое ранее работало отлично:

mapping.HasManyToMany(x => x.ManagedEmployees).Cascade.SaveUpdate()
                .Table("ManagersToEmployees").ParentKeyColumn("Manager_id").ChildKeyColumn("Employee_id")
                .AsSet()
                .Not.LazyLoad()
                .Fetch.Subselect()
                ;

mapping.HasManyToMany(x => x.Managers).Cascade.None()
                .Table("ManagersToEmployees").ParentKeyColumn("Employee_id").ChildKeyColumn("Manager_id")
                .Inverse()
                .AsSet()
                ;

теперь выдает ошибку:

FluentNHibernate.Visitors.ValidationException: The relationship Employee.Managers to Employee.Managers has Inverse specified on both sides. Remove Inverse from one side of the relationship..  

кто-нибудь понял?

Редактировать
это подтвержденная ошибка в FNH. на основе этого обходного пути Я изменил свою конфигурацию автоматического преобразования на:

    .Mappings(m => 
                        {
                           var autoPersistenceModel = AutoMap.AssemblyOf<Domain.Employee>(cfg)      //automapping the domain entities

.UseOverridesFromAssemblyOf<MappingOverrides.DepartmentMappingOverride>();

                           autoPersistenceModel.ValidationEnabled = false;

                            m.AutoMappings.Add(
                             autoPersistenceModel
                        );                
                     }
                    );
...