从不同的程序集调用时,流畅的NHibernate配置问题

时间:2011-11-21 11:08:58

标签: c# nhibernate fluent-nhibernate

我的项目结构如下:
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.

请帮我解决此问题。

1 个答案:

答案 0 :(得分:0)

我是一个新手;但我想:

FluentMappings.AddFromAssembly(**Assembly.GetEntryAssembly()**); 

可能在执行winforms.exe时起作用,但是当测试将反映出任何激发测试的内容时。

也许这应该是:

FluentMappings.AddFromAssemblyOf< *mappings class* >()

或者,如果您需要使用反射:

m.FluentMappings.AddFromAssembly(Assembly.GetAssembly(typeof(*mappings class* )))