我的项目结构如下:
1. NHibernate Base类打开会话,数据访问功能和CRUD方法。 (DLL)
2.一个exectue程序(windows窗体),它在一个单独的命名空间中有域类和映射器。 (EXE)
3. NUnit测试用例(Dll)
我使用以下代码创建配置:
public Configuration BuildConfig()
{
var configuration = new Configuration();
return Fluently.Configure(configuration)
.Mappings(cfg => {
cfg.FluentMappings.AddFromAssembly(Assembly.GetEntryAssembly());
}).BuildConfiguration();
}
当我尝试从2n程序(Windows窗体应用程序)创建配置时,配置已成功完成。
现在我在NUnit Test程序集中引用了上述两个程序集,并且我已经复制了与windows窗体相同的配置设置(app.config)。 Fluent无法构建会话工厂,我遇到以下异常:
FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
Database was not configured through Database method.
请帮我解决此问题。
答案 0 :(得分:0)
我是一个新手;但我想:
FluentMappings.AddFromAssembly(**Assembly.GetEntryAssembly()**);
可能在执行winforms.exe
时起作用,但是当测试将反映出任何激发测试的内容时。
也许这应该是:
FluentMappings.AddFromAssemblyOf< *mappings class* >()
或者,如果您需要使用反射:
m.FluentMappings.AddFromAssembly(Assembly.GetAssembly(typeof(*mappings class* )))