2009-12-09 12 views
0

J'essaie de comprendre ce que serait la convention pour une liste d'objets de valeur, dans ce cas un IList. Voici un fragment de code pour mon modèle de domaine:Qu'est-ce que la convention Fluent NHibernate pour la liste d'objets de valeur

public class RegionSetting : Entity { 
    public virtual bool Required { get; set; } 
    public virtual string Name { get; set; } 
    public virtual IList<string> Options { get; set; } 
} 

Mon AutoMapping est réglé sur:

public class RegionSettingMap : IAutoMappingOverride<RegionSetting> { 
    public void Override(AutoMapping<RegionSetting> mapping) { 
     mapping 
      .HasMany(x => x.Options).Element("Options") 
      .Table("RegionSettingOptions") 
      .KeyColumn("RegionSettingId"); 
    } 
} 

Je voudrais faire les .Table() et .KeyColumn() l'emporte dans une convention pour que je n'ai pas pour le faire partout où j'utilise IList<string>. Je pensais que je pouvais créer un IHasManyConvention, mais cela ne semble pas affecter ce mapping. J'ai défini un point d'arrêt dans ma classe personnalisée HasManyConvention, mais elle ne se casse pas pour la propriété Options. Quelqu'un pourrait-il me dire quelle convention je devrais utiliser pour automatiser ce remplacement?

Répondre

0

L'utilisation d'un IHasManyConvention aurait dû fonctionner. Essayez un IBagConvention, voir si cela fonctionne. Sinon, il y a un bug là-dedans.