2011-01-18 1 views
0

Je n'arrive pas à comprendre pourquoi la génération automatique et la génération de schémas NHibernate ne fonctionnent pas.Pas de création automatique de schéma et de création de schéma avec Fluent NHibernate: Je n'arrive pas à comprendre ce qui ne va pas

J'ai ce code:

return Fluently 
    .Configure() 
    .Database 
    (
     MsSqlConfiguration.MsSql2005.ConnectionString 
     (
      c => c.FromConnectionStringWithKey("dataAccess") 
     ) 
    ) 
    .Mappings(config => config.AutoMappings.Add(AutoMap.Assembly(ObjectsAssembly, new ORMAutoMappingConfiguration()))) 
    .ExposeConfiguration(config => new SchemaExport(config).Create(true, true)) 
    .BuildSessionFactory() 
    .OpenSession(); 

Et:

public sealed class ORMAutoMappingConfiguration : DefaultAutomappingConfiguration 
{ 
    public override bool ShouldMap(Member member) 
    { 
     return member.DeclaringType.IsSubclassOf(typeof(DomainObject)); 
    } 
} 

La base de données et les correspondances ne sont pas créés. "ObjetsAssembly" est un objet obtenu dans une propriété, je l'ai regardé et j'ai pu déterminer qu'il s'agit du bon assemblage et qu'il possède des objets de domaine héritant de DomainObject.

Autre chose est la classe de configuration automapping n'est jamais nécessaire dans le processus, ShouldMap n'est pas invoqué par FNH.

Qu'est-ce qui ne va pas?

Merci.

+0

Ah, la connexion à la base de données fonctionne, une connexion est ouverte. –

Répondre

0

Malheureusement, cela a été très facile à résoudre le problème! Je remplaçais ShouldMap (Member) au lieu de ShouldMap (Type) de surcharge.

C'est tout type qui allait être mappé, ce qui est faux parce que tous n'étaient pas des objets de domaine.

Mon modèle de domaine et ma base de données fonctionnent!

Merci quand même.

0

Ne peut pas dire ce qui est erroné avec vos automappings, mais d'utiliser la génération de schéma dont vous avez besoin

var schema = new SchemaExport(configuration); 
schema.Create(true, true); 
+0

Je l'ai eu de travail, il y avait un problème très stupide ... Voir mon implémentation de configuration automapping: il implémente la surcharge ShouldMap (membre) au lieu de ShouldMap (Type) un. Ce qui était faux? Tout type allait être mappé et FNH a échoué car tous les types de cet assemblage ne sont pas des objets de domaine. Merci quand même!! –

Questions connexes