2009-09-01 7 views
1

Ceci est une question de débutant NHibernate Fluent, donc porte avec moi.Overriding Fluid NHibernate Automappings

J'ai un ensemble de classes, et j'applique les capacités d'Automapping.

Mais je dois marquer l'une des propriétés de l'une des techniques avec une contrainte Unique.

Dans le Wiki Courant, il dit

Il est parfois nécessaire de faire de légères modifications à une entité spécifique, sans vouloir affecter quoi que ce soit d'autre ; vous pouvez le faire avec la méthode Override.

.Override (carte => {
map.HasMany (x => x.Products) .Cascade.All();});

Mais je n'arrive pas à déterminer quel objet appliquer la méthode .Override.

En ce moment, je

AutoPersistenceModel returnModel = AutoMap.AssemblyOf()

Mais l'objet AutoPersistenceModel ne dispose pas d'une méthode Override. Est-ce que quelqu'un peut me donner un exemple de code simple pour me guider à travers cela, ou me montrer quelques liens avec quelques exemples?

Merci.

Répondre

3

Il a une méthode Override dans le RTM 1.0. Vous l'utilisez comme ceci:

AutoMap.AssemblyOf<Person>().Override<Shelf>(map => 
{ 
    map.HasMany(x => x.Products).Cascade.All(); 
}); 
+0

Hmm. La DLL FluentNHibernate que je référence a une version du produit de 1.0.0.0, mais l'Intellisense ne montre pas une méthode de remplacement. Si je force de toute façon et que j'essaie de le construire, j'obtiens une erreur: "... AutoPersistenceModel ne contient pas de définition pour Override ..." –

+0

Vous devez vérifier que vous avez la bonne version de l'assembly. Je l'ai téléchargé depuis http://fluentnhibernate.org/downloads/releases/fluentnhibernate-1.0RTM.zip et la classe AutoPersistenceModel a définitivement la méthode Override. Il a également Version = 1.0.0.593 au lieu de 1.0.0.0 –

+0

Mes excuses. Vous avez raison. J'ai eu la version 1.0RC, pas le 1.0RTM. Merci de votre aide. –