2009-09-03 7 views
3

流暢なnhibernateを使用して私のドメインモデルを自動化しようとしています。この特定のケースでは、私はマップする必要がある双方向の一対多の関係を持っています。問題は、それが双方向関係として自動的には実現されず、2つの異なる関係として完全に認識され、それぞれに別々の外部キーが作成されるということです。Fluent NHibernate Automapping双方向関係

流暢なnhibernateと同じ関係であることを私はどのように伝えますか?私は十分に明確であることを望む。

答えて

3

1.0RCを使用してオートマップを無効にすることができます。 SharpArchitectureのEmployeeからTerritoryへの双方向マッピングのこの例を試してみてください。ここで、Territoryは関係の逆です。

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(); 
    } 
} 
関連する問題