Fluent nhibernate 流畅。在不显式输入类型的情况下进行配置
我试着让我的流畅映射超越我在这里找到的基本内容: 其中,他们明确添加每种类型,如下所示:Fluent nhibernate 流畅。在不显式输入类型的情况下进行配置,fluent-nhibernate,Fluent Nhibernate,我试着让我的流畅映射超越我在这里找到的基本内容: 其中,他们明确添加每种类型,如下所示: ISessionFactory localFactory = Fluently.Configure() .Database( ObjectFactory.GetInstance<SybaseConfiguration>().GetSybaseDialect( "BLAH" ) ) .
ISessionFactory localFactory =
Fluently.Configure()
.Database( ObjectFactory.GetInstance<SybaseConfiguration>().GetSybaseDialect( "BLAH" ) )
.Mappings( m =>
{
m.HbmMappings
.AddFromAssemblyOf<StudTestEO>();
m.FluentMappings
.AddFromAssemblyOf<StudTestEO>()
.AddFromAssemblyOf<StudTestEOMap>();
} )
.BuildSessionFactory(); .BuildSessionFactory();
ISessionFactory本地工厂=
fluent.Configure()
.Database(ObjectFactory.GetInstance().GetSybaseDialante(“BLAH”))
.Mappings(m=>
{
m、 HbmMappings
.AddFromAssemblyOf();
m、 FluentMappings
.AddFromAssemblyOf()的
.AddFromAssemblyOf();
} )
.BuildSessionFactory()。BuildSessionFactory();
然后尝试获取程序集,获取它的类型列表,并将其传递进来
反而
有点像这样
string FullEoAssemblyFName = webAccessHdl.GetMapPath(EoAssemblyFName);
string FullMapAssemblyFName = webAccessHdl.GetMapPath(MapAssemblyFName);
string FullConfigFileName = webAccessHdl.GetMapPath("~/" + NHibernateConfigFileName);
if (!File.Exists(FullEoAssemblyFName))
throw new Exception("GetFactoryByConfigFile, EoAssemblyFName does not exist>" + FullEoAssemblyFName + "<");
if (!File.Exists(FullMapAssemblyFName))
throw new Exception("GetFactoryByConfigFile, MapAssemblyFName does not exist>" + FullMapAssemblyFName + "<");
if (!File.Exists(FullConfigFileName))
throw new Exception("GetFactoryByConfigFile, ConfigFile does not exist>" + FullConfigFileName + "<");
Configuration configuration = new Configuration();
Assembly EoAssembly = Assembly.LoadFrom(webAccessHdl.GetMapPath(EoAssemblyFName));
Assembly MapAssembly = Assembly.LoadFrom(webAccessHdl.GetMapPath(MapAssemblyFName));
Type[] EoType = EoAssembly.GetTypes();
Type[] MapType = MapAssembly.GetTypes();
ISessionFactory localFactory =
fluent.Mappings(
m =>
{
// how do i add all the types from type array here?
m.FluentMappings.Add(MapAssembly).AddFromAssembly(EoAssembly);
}
)
.BuildSessionFactory();
string FullEoAssemblyFName=webAccessHdl.GetMapPath(EoAssemblyFName);
字符串FullMapAssemblyFName=webAccessHdl.GetMapPath(MapAssemblyFName);
字符串FullConfigFileName=webAccessHdl.GetMapPath(“~/”+NHibernateConfigFileName);
如果(!File.Exists(FullEoAssemblyFName))
抛出新异常(“GetFactoryByConfigFile,EoAssemblyFName不存在>”+FullEoAssemblyFName+“”+FullMapAssemblyFName+“”+FullConfigFileName+”config.Mappings(m=>m
.FluentMappings.AddFromAssemblyOf());
这将添加包含StudTest的程序集中的所有映射;通常我只有一个包含项目映射的程序集,这样就足够了
config.Mappings(m => m
.FluentMappings.AddFromAssemblyOf<StudTest>());