2

Disons que j'ai une base de données existante avec les 3 tableaux suivants:Fluent NHibernate mapper un ID composite à partir des ID composites hérités

Tableau 1:
(PK) T1ID1
(PK) T1ID2

Tableau 2:
(PK) T2ID1

Table3:
(FK) T1ID1
(FK) T1ID2
(FK) T2ID1 (Lorsque les 3 clés proviennent des tableaux ci-dessus)

Ma question est: Comment puis-je la carte Table3 avec Fluent NHibernate?
Ce qui me déroute, c'est ce qu'il faut faire sur le fait que ses touches composites proviennent de 2 tables différentes.

Je donne les résultats suivants pour les correspondances pour les tables 1 et 2:

public class Table1 
{ 
    public virtual long T1ID1 { get; set; } 
    public virtual long T1ID2 { get; set; } 
} 

public class Table2 
{ 
    public virtual long T2ID1 { get; set; } 
} 

public class Table1Map 
{ 
    public Table1Map() 
    { 
     Table("Table1"); 

     CompositeId() 
      .KeyProperty(x => x.T1ID1, "T1ID1") 
      .KeyProperty(x => x.T1ID2, "T1ID2"); 
    } 
} 

public class Table2Map 
{ 
    public Table2Map() 
    { 
     Table("Table2"); 

     Id(x => x.T2ID1, "T2ID1"); 
    } 
} 
+0

J'ai du mal à essayer de mapper un m: n avec les deux tables composites pk. apparemment pas même aussi edge que votre cas. Une chance? –

Répondre

1

essayer de regarder Fluent NHibernate and composite ID with single column name Je pense que ce que vous êtes après est la propriété « .KeyReference() ». Le lien ci-dessus utilise une ancienne version de FNH mais tout ce dont vous avez besoin, en ce qui concerne votre problème est que les noms des méthodes sont légèrement différents. tout le reste de cet article devrait vous aider.

Faites-moi savoir comment vous allez.

Questions connexes