1 votes

Erreur Fluent nHibernate CreatingSessionFactory avec Oracle

Lorsque j'essaie d'utiliser la fonction BuildSessionFactory(), je reçois une erreur disant qu'elle ne peut pas trouver les assemblages suivants :

Impossible de créer le pilote de NHibernate.Driver.OracleDataClientDriver, NHibernate, Version=2.1.2.4000

J'ai une référence à Oracle.DataAccess version 4.11 dans mon dossier bin et local, j'utilise :

Oracle 10 et Visual Studio 2010 .NET 4

Et appeler avec la méthode ci-dessous :

public static ISessionFactory CreateSessionFactory()
    {
        FluentConfiguration idk = Fluently
            .Configure()
            .Database(OracleDataClientConfiguration
                .Oracle9
                .UseReflectionOptimizer()
                .MaxFetchDepth(3)
                .AdoNetBatchSize(500)
                .ConnectionString(cs => cs
                .Server("Paul-PC")
                .Port(1521)
                .Instance("xe")
                .Username("xxxx")
                .Password("xxxx")
                .Pooling(true)
                .StatementCacheSize(100)
                .OtherOptions(
                "Min Pool Size=10;Incr Pool Size=5;Decr Pool Size=2;")
            )
            // It does this automatically.. but I like to be explicit ;)
            .ProxyFactoryFactory("NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle")
            .ShowSql()
            )
            .Mappings(m => m.FluentMappings.Add(typeof(PortalUserMap)));

        idk.ExposeConfiguration(BuildSchema);

        return idk.BuildSessionFactory();
    }

La classe PortalUserMap est présentée ci-dessous :

using System;

en utilisant System.Collections.Generic ; en utilisant System.Linq ; en utilisant System.Text ; en utilisant FluentNHibernate.Mapping ; en utilisant Mobisoft.Portal.Security.Entities ;

espace de noms Mobisoft.Portal.Security.Mappings { public class PortalUserMap : ClassMap { public PortalUserMap() { Table("PORTALUSER") ;

        Id(x => x.Id, "ID").GeneratedBy.Identity();
        Map(x => x.Name, "NAME");
    }

}

S'il vous plaît, aidez-moi, cela fait deux jours que j'essaie de trouver une réponse en ligne.

Paul.

1voto

IBEANS Points 11

Fluent NHibernate 1.1 fait référence à NHibernate 2.1.X, vous devez référencer fluent NHibernate 1.2 dans votre projet avant de pouvoir l'utiliser avec NHibernate 3.0.4 ou plus, ce que vous utilisez, je suppose. Vous pouvez le télécharger à partir d'ici http://fluentnhibernate.org/dls/v1.x/fluentnhibernate-NH3.0-binary-1.2.0.694.zip

0voto

Nicholas Murray Points 5726

Mettez à jour la référence à Oracle.DataAccess.dll dans votre projet, en définissant CopyLocal sur True.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X