我正在从事 ASP.Net MVC 项目。我正在与以下数据库进行交易;
using (ISession session = FluentNHibernateHelper.OpenSession())
{
var user = session.Query<User>()
.FirstOrDefault(x => x.UserEmail == email && x.UserPassword == password); }
我不想每次都使用这种类型的代码块,就像打开-关闭连接一样,我想在运行时打开连接,我想在任何地方都使用那个session
变量。也许在 Global.asax.cs 中的 Application_Start()
中有一些代码?
我乐于接受您的宝贵意见。感谢您的帮助!
最佳答案
将连接保持打开状态或在多个事务中维护 ORM 中的状态是不好的做法,因为当您对同一对象和连接发出多个请求时,状态问题会很快出现。
但是,如果必须的话,您可以将其作为单例服务注入(inject),该服务的生命周期比单个请求长。这对于缩放来说是有问题的,不推荐。
services.AddSingleton<ISession>(provider =>
{
return FluentNHibernateHelper.OpenSession()
});
关于asp.net - 如何在运行时打开数据库连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53782901/