2010-11-04 6 views
2


Je suit des entitésCourant NHibernate problème de cartographie Dictionnaire

 
public class Entity1 
{ 
    public virtual Guid Id { get; set; } 
    public virtual IDictionary<Guid, Entity2> Entities2 { get; set; } 
} 

public class Entity2 
{ 
    public virtual Guid Id { get; set; } 
    public virtual IDictionary<Guid, Entity1> Entities1 { get; set; } 
} 

table DB

 
CREATE TABLE [dbo].[EntityLinks](
    [Entity1Id] [uniqueidentifier] NOT NULL, 
    [Entity2Id] [uniqueidentifier] NOT NULL, 
    [LinkItemId] [uniqueidentifier] NOT NULL 
) 

et les correspondances suivantes:

pour Entité1

 
mapping.HasManyToMany<Entity2>(rc => rc.Entities2) 
    .Table("EntityLinks") 
    .ParentKeyColumn("Entity1Id") 
    .ChildKeyColumn("Entity2Id") 
    .AsMap<Guid>("LinkItemId") 
 

pour Entity2

 
mapping.HasManyToMany<Entity1>(rc => rc.Entities1) 
    .Table("EntityLinks") 
    .ParentKeyColumn("Entity2Id") 
    .ChildKeyColumn("Entity1Id") 
    .AsMap<Guid>("LinkItemId") 
 

l'ajout de données fonctionne très bien et je peux obtenir et voir Entity1.Entities2 peuplée mais Entity2.Entities1 n'est pas peuplée.

Des suggestions pourquoi cela pourrait-il être?

Merci à l'avance.

Répondre

0

Je suis probablement mal mais vous pouvez essayer:

mapping.HasManyToMany<Entity2>(rc => rc.Entities2) 
    .Table("EntityLinks") 
    .ParentKeyColumn("Entity1Id") 
    .ChildKeyColumn("Entity2Id") 
    .AsMap<Guid>("LinkItemId") 
    .Inverse() 

et

mapping.HasManyToMany<Entity1>(rc => rc.Entities1) 
    .Table("EntityLinks") 
    .ParentKeyColumn("Entity2Id") 
    .ChildKeyColumn("Entity1Id") 
    .AsMap<Guid>("LinkItemId") 
    .Cascade.All(); 
+0

Merci pour la suggestion, mais unfrtunately pas résolu mon problème :( – georgejh

Questions connexes