2009-10-01 6 views
0

J'utilise les éléments suivants:Est-il possible d'utiliser la génération automatique et la génération de schéma avec Fluent NHibernate?

Fluently.Configure() 
     .Database(MsSqlConfiguration.MsSql2005.ConnectionString(connectionString)) 
     .Mappings(m => m.AutoMappings.Add(AutoMap.AssemblyOf<Incident>() 
     .Where(t => t.Namespace.StartsWith("EDA.DomainModel.POCO")))) 
     .ExposeConfiguration(BuildSchema) 
     .BuildSessionFactory(); 

Il est essentiellement une copie de ce qui est dans le wiki Fluent NHibernate. Cependant, chaque fois que je lance cette ligne, il jette cette InnerException:

"The type or method has 2 generic parameter(s), but 1 generic argument(s) were provided. A generic argument must be provided for each generic parameter." 

Je ne suis pas sûr de ce que le problème est, donc je me demande si Fluent NHibernate peut faire AutoMapping avec génération de schéma dans le premier endroit. Ce que je veux faire, c'est simplement créer une couche de persistance pour les POCO sans avoir à voir la base de données ou à faire des bêtises avec n'importe quelle table.

Répondre

0

Oui, c'est possible. J'utilise l'automapping et fais le schéma d'exportation. En ce qui concerne l'exception je l'ai eu quand j'ai essayé de mapper IDictionary <,>. L'utilisez-vous? Fluent NHibernate fonctionne-t-il - même si vous n'essayez pas d'exporter le schéma? Je dirais que c'est un problème avec vos mappings, pas avec l'export de schéma. Si vous avez IDictionary alors c'est presque sûr. Essayez de clouer votre schéma à des classes triviales et voyez si ça aide; essayez de créer un schéma de base de données manuellement (pour les classes triviales, c'est simple) et vérifiez si cela fonctionne.

+0

J'ai supprimé le dictionnaire et maintenant il dit qu'il ne peut pas trouver un mappage pour mes enums. Joy ... –

+0

Je vois ce que le problème est maintenant, il ne peut pas gérer des collections d'énumérations. –

+0

Je devrais être capable de gérer la collection d'énumérations, probablement avec un type d'utilisateur personnalisé spécial, voir http://stackoverflow.com/questions/439003/how-do-you-map-an-enum-as-an-int- value-with-fluent-nhibernate par exemple. – queen3

Questions connexes