是否可以使用像这样的包装器和流畅的配置?
http://jeffreypalermo.com/blog/use-this-nhibernate-wrapper-to-keep-your-repository-classes-simple/
如果是这样,我应该在哪里添加流畅的配置?
另外,这是否适合在 ASP.NET 和 Windows 应用程序中使用? 我打算使用存储库模式,用它来创建我的 nHibernate session ?
最佳答案
在 SessionBuilder
中的 GetConfiguration
方法中,而不是
public Configuration GetConfiguration()
{
var configuration = new Configuration();
configuration.Configure();
return configuration;
}
如您链接的页面所示,只需执行以下操作:
public Configuration GetConfiguration()
{
return Fluently.Configure()
.Database(/* your database settings */)
.Mappings(/* your mappings */)
.ExposeConfiguration(/* alter Configuration */) // optional
.BuildConfiguration();
}
关于处理上下文的进一步查询,您将有两个继承ISessionBuilder
的类,例如AspSessionBuilder
和 WinAppSessionBuilder
,并为当前项目注入(inject)适当的一个。您应该使用 Jamie Ide 概述的策略还有posted as an answer对于这个问题来处理上下文而不是使用HttpContext
。您只需修改这一行:
.ExposeConfiguration(x => x.SetProperty("current_session_context_class", "web")
类似于“call”
或“thread_static”
。请参阅 NHibernate Forge wiki 上的此页面,了解不同上下文 session 类型的详细说明:
关于c# - 使用带有 Fluent nHibernate 的 nHibernate 包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2596376/