我将 NHibernate 用于可以动态加载其模块的动态网站,因此当我想构建 sessionFactory 时,我使用一种方法来查找所有程序集并使用它们的依赖项对它们进行排序,我将它们添加到我创建的配置实例中有用。现在我想将配置类型从 hbm.xml 文件更改为流畅,我添加了以下代码:
sessionFactory =
Fluently
.Configure()
.Database(
FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2008.ConnectionString(
c => c.FromAppSetting("connectionString")
)
)
.Mappings(
m => m.AutoMappings.Add(
AutoMap.Assemblies(
new FarayanConfig(),
assembliesArray
)
)
).BuildSessionFactory();
FarayaConfig 是:
class FarayanConfig : DefaultAutomappingConfiguration
{
public override bool ShouldMap(Type type)
{
return type.Name.EndsWith("Entity");
}
public override bool IsVersion(FluentNHibernate.Member member)
{
return member.Name == "Version";
}
}
我还在程序集中有一个类,该类将由此代码加载(注意程序集未引用,将动态加载),其中包含一个名为 ControlEntity 的类和另一个类:
public class ControlEntityMap : ClassMap<ControlEntity>
{
public ControlEntityMap()
{
HasMany(x => x.Properties).Component(c => {
c.Map(v => v.Culture);
c.Map(v => v.Name);
c.Map(v => v.Value);
});
}
}
现在的问题是 ControlEntityMap 的构造函数不会执行!我应该做什么?