2009-11-11 10 views
0

J'ai une entité:FluentNHibernate: ne peut pas changer le nom de la colonne clé pour un-à-plusieurs

public class Message:Entity 
    { 
     public virtual IList`<`Message> ReplayMessages { set; get; } 
     public virtual Message ParentMessage { set; get; } 
    } 

I try to override the mapping: 
mapping.HasMany(x => x.ReplayMessages) 
       .AsSet() 
       .KeyColumnNames.Add("ParentId"); 

mais dans le fichier hbm.xml je reçois:

<set name="ReplayMessages"> 
     <key column="MessageFk" /> 
     <one-to-many class="Edi.Core.Model.Message, Edi.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
    </set> 

Pourquoi le nom de la clé de la colonne n'a pas changé?

+0

retagged comme "fluent-NHibernate" pour utiliser la balise plus populaire – ddc0660

Répondre

0

Quand j'utilise hasMany il ressemble à ceci:

HasMany(x => x.OrderItems) 
    .KeyColumn("OrderId") 
    .AsSet() 
    .Cascade.All(); 

Je ne sais pas ce que KeyColumnNames est ...

+0

I ne pas avoir KeyColumn, seulement KeyColumnNames. Pourquoi? – Lullaby

+0

Vous devez mettre à jour votre copie de Fluent NHibernate. 1.0 RTM a été publié il y a quelques mois maintenant. –