当我尝试BuildSessionFactory()时,我收到错误消息,说它无法找到以下组件:
无法从NHibernate.Driver.OracleDataClientDriver,NHibernate,Version = 2.1.2.4000
创建驱动程序我在我的bin文件夹和本地文件中引用了Oracle.DataAccess版本4.11,我正在使用:
Oracle 10和 Visual Studio 2010 .NET 4
使用以下方法调用:
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();
}
PortalUserMap类如下:
using System;
使用System.Collections.Generic; 使用System.Linq; 使用System.Text; 使用FluentNHibernate.Mapping; 使用Mobisoft.Portal.Security.Entities;
命名空间Mobisoft.Portal.Security.Mappings { 公共类PortalUserMap:ClassMap { 公共PortalUserMap() { 表( “PORTALUSER”);
Id(x => x.Id, "ID").GeneratedBy.Identity();
Map(x => x.Name, "NAME");
}
}
请有人帮助我,我一直试图在网上找到答案两天了。
保罗。
答案 0 :(得分:1)
Fluent NHibernate 1.1参考NHibernate 2.1.X,您需要在项目中引用流畅的NHibernate 1.2,然后才能将它与NHibernate 3.0.4或更高版本一起使用,我猜你正在使用它。 你可以在这里下载 http://fluentnhibernate.org/dls/v1.x/fluentnhibernate-NH3.0-binary-1.2.0.694.zip
答案 1 :(得分:0)
更新项目中对Oracle.DataAccess.dll的引用,将CopyLocal设置为True。