2009-09-03 6 views
3

J'essaye d'automap mon modèle de domaine en utilisant le nhibernate fluide. Dans ce cas particulier, j'ai une relation un-à-plusieurs bidirectionnelle que j'ai besoin de cartographier. Le problème est qu'il ne le réalise pas automatiquement comme une relation bidirectionnelle mais comme deux relations différentes et crée une clé étrangère distincte pour chacune. Comment puis-je dire nhibernate fluent que c'est la même relation? J'espère que je suis assez clair.NHibernate fluide Automatisation des relations bidirectionnelles

Répondre

3

Vous pouvez remplacer l'automap en utilisant le 1.0RC. Essayez cet exemple de mappage bidirectionnel de SharpArchitecture d'Employé à Territoire, où Territoire est l'inverse de la relation:

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(); 
    } 
} 
Questions connexes