2010-12-23 1 views
0

je le mappage couramment configuration suivante pour une entité:question Fluent NHibernate avec la création d'index colonne unique multi

 *Id(x => x.Id); 
     References(x => x.UserNominee).UniqueKey("UQ_SurveyNominee"); 
     References(x => x.SurveyRequest).UniqueKey("UQ_SurveyNominee"); 

     Map(x => x.NominationDate).Not.Nullable();* 

Malheureusement, l'index unique est créé uniquement sur l'une des colonnes sur la résultante table SQL Server et pas tous les deux comme je m'y attendais. Qu'est-ce que je fais mal?

Cordialement

MJJ

Répondre

0

OK J'ai réussi à obtenir ce travail mais je ne sais pas pourquoi il devrait faire une différence. J'ai dû modifier le mappage sur l'entité "SurveyRequest" parent. . Je changé la cartographie à partir de:

 HasMany(x => x.SurveyAwarenessNominees) 
      .KeyColumn("SurveyRequest_Id") 
      .LazyLoad() 
      .Inverse() 
      ; 

à

hasMany (x => de x.SurveyAwarenessNominees) .Cascade.All() inverse();

Mon index unique est maintenant correctement créé sur les deux colonnes de clé étrangère.

+0

Une enquête plus poussée montre que c'était l'instruction ".KeyColumn (" SurveyRequest_Id ")" dans le mappage parent qui était à l'origine du problème. Le mappage parent d'origine sans la partie KeyColumn fonctionne correctement. –