2010-07-16 9 views
5

NHibernate ve Fluent NHibernate için yeni bir markayım ve çalışmak için aşağıdaki konfgürasyonu yapmaya çalışıyorum.Fluent NHibernate - Oracle Veri Sağlayıcıyı Yapılandırma ODP

private static ISessionFactory CreateSessionFactory() 
{ 
    return Fluently.Configure() 
     .Database(
     OracleDataClientConfiguration.Oracle10.ConnectionString("Data Source=mysource;User ID=myid;Password=mypwd;")     
     ) 
     .Mappings(m => 
      m.FluentMappings.AddFromAssemblyOf<Program>()) 
     .BuildSessionFactory(); 

    } 

Başvurulan Oracle.DataAccess derlemine sahibim.

FluentNHibernate.Cfg.FluentConfigurationException işlenmeyen oldu Message SessionFactory oluşturulurken bir geçersiz veya eksik yapılandırma kullanıldı =: Ben VS 2010 ve .Net 4

aşağıdaki özel durum alıyorum kullanıyorum. Daha fazla bilgi için PotansiyelReasons koleksiyonunu ve InnerException öğesini kontrol edin.

Kaynak = FluentNHibernate StackTrace: FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory (d) 'de de : \ oluşturur \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs: hattı HibernateLearning.Program.CreateSessionFactory 98 () C: \ Projects \ CPS Sınama Konseptleri \ Main \ Source \ CPSTestConcepts \ Kaynak \ HibernateLearning \ Program.cs: line 48 , C: \ Projects \ CPS Test Kavramları \ Main'da HibernateLearning.Program.Main (String [] args) \ Source \ CPSTestConcepts \ Source \ HibernateLearning \ Program.cs: System.AppDomain._nExecuteAssembly (RuntimeAssembly assembly, String [] args) satırında System.AppDomain.ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String [] args)System.Threading.ExecutionContext.Run de System.Threading.ThreadHelper.ThreadStart_Context (nesne durumu) de Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() (ExecutionContext ExecutionContext, ContextCallback geri çağırma, Boole ignoreSyncCtx durumunu Nesne) dede System.Threading.ThreadHelper.ThreadStart de System.Threading.ExecutionContext.Run (ExecutionContext ExecutionContext, ContextCallback geri arama, nesne durumu) () InnerException: NHibernate.HibernateException Mesaj = NHibernate.Driver.OracleDataClientDriver, NHibernate sürücüyü oluşturulamadı , Sürüm = 2.1.2.4000, Kültür = tarafsız, PublicKeyToken = aa95f207798dfdb4. Kaynak = NHibernate StackTrace: NHibernate.Connection.ConnectionProvider.ConfigureDriver (IDictionary 2 settings) at NHibernate.Connection.ConnectionProvider.Configure(IDictionary 2 ayar) de NHibernate.Connection.ConnectionProviderFactory.NewConnectionProvider (IDictionary 2 settings) at NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary 2 özellikleri) de NHibernate.Cfg.Configuration.BuildSettings() en d FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory de NHibernate.Cfg.Configuration.BuildSessionFactory() (): \ oluşturur \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs: hattı 93 InnerException: System.Reflection.TargetInvocationException Mesaj = İstisnanın hedefi tarafından istisna atıldı. = Mscorlib StackTrace Kaynak: System.RuntimeTypeHandle.CreateInstance de (RuntimeType türü, Boolean publicOnly, Boolean nocheck, Boole & canBeCached, RuntimeMethodHandleInternal & ctor, Boole & bNeedSecurityCheck) System.RuntimeType.CreateInstanceSlow (Boolean publicOnly, Boolean skipCheckThis de, System.Activator.CreateInstance (Tip tipi) de System.Activator.CreateInstance (Tip tipi, Boole halka açıklanmamış) de System.RuntimeType.CreateInstanceDefaultCtor (Boolean publicOnly, Boole skipVisibilityChecks, Boole skipCheckThis, Boole FillCache) de Boolean FillCache) de NHibernate.Bytecode.ActivatorObjectsFactory.Creat NHibernate.Connection.ConnectionProvider at eInstance (Tip tipi) .ConfigureDriver (IDictionary`2 ayarları) InnerException: NHibernate.HibernateException İleti = Oracle.DataAccess derlemesindeki IDbCommand ve IDbConnection uygulaması bulunamadı. Oracle.DataAccess derlemesinin uygulama dizininde veya Global Assembly Cache'de bulunduğundan emin olun. Derleme GAC'daysa, derlemenin tam adını belirtmek için uygulama yapılandırma dosyasındaki öğeyi kullanın. Kaynak = NHibernate StackTrace:

+0

Bu neden bir viki? – DCookie

+0

Yanlışlıkla tıkladım. Afedersiniz. Wiki bayrağını nasıl kaldırabilirim? –

+0

Yapamazsın. Sadece silebilir ve yeniden yayınlayabilirsiniz. Bu büyük bir anlaşma değil, eğer ayrılmışsa herhangi bir itibar puanı almayacaksınız. – DCookie

cevap

7

ı o dışarı: NHibernate.Driver.OracleDataClientDriver..ctor() InnerException de NHibernate.Driver.ReflectionBasedDriver..ctor (String driverAssemblyName, dize connectionTypeName, dize commandTypeName) de . ODP'ye başvurduğunuzda, referansın yerel niteliğini true olarak ayarlamanız gerekir, aksi takdirde aradığı nesneleri bulamaz.

Bir engel yok, eminim daha fazla olacak ama bu araçları seviyorum!

Paul

0

Eğer ODP dll platformları ve uygulama (x64 vs x86) platformu arasında bir uyumsuzluk varsa da bu sorunu alabilirsiniz. Doğru platformu karşı derlemek için projenizi değiştirin.