在 ASP.NET MVC 4 NHibernate 应用程序中使用 SessionFactory 获取连接

Posted

技术标签:

【中文标题】在 ASP.NET MVC 4 NHibernate 应用程序中使用 SessionFactory 获取连接【英文标题】:Get connection using SessionFactory in ASP.NET MVC 4 NHibernate application 【发布时间】:2014-08-01 10:20:04 【问题描述】:

我使用NHibernate.dll(版本1.2.0.4000)创建了我的 ASP.NET MVC 4 应用程序。

我之前使用的获取SqlConnection的代码如下:

SqlConnection connection = m_SessionFactory.ConnectionProvider.GetConnection() as SqlConnection;

在我将 NHibernate 版本更新为 3.3.1.4000 后,现在遇到错误:

“NHibernate.ISessionFactory”不包含“ConnectionProvider”的定义,并且找不到接受“NHibernate.ISessionFactory”类型的第一个参数的扩展方法“ConnectionProvider”(您是否缺少 using 指令或程序集引用? )

请提出答案!

【问题讨论】:

【参考方案1】:

如果你真的需要它,你可以将你的 ISessionFactory 转换为它的 NHibernate 实现:

var factory = m_SessionFactory as NHibernate.Impl.SessionFactoryImpl;
var connection = factory.ConnectionProvider.GetConnection() as SqlConnection;

【讨论】:

很高兴看到这一点 ;) 享受 NHibernate,令人惊叹的工具 ;)

以上是关于在 ASP.NET MVC 4 NHibernate 应用程序中使用 SessionFactory 获取连接的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 4 (一)路径映射

ASP.NET MVC 4 模型验证

asp.net mvc 4 贝宝集成

ASP.NET MVC 4 Web API

ASP.NET MVC 4 (一)路径映射

ASP.NET MVC 4 Bundles和显示模式