我们有服务作为控制台应用程序。有时间执行一些工作。有抽象方法DoJob。但是我们遇到了问题。一切都在一个数据库中,但在添加一个数据库之后,我们有一个工作需要其他数据库。这样做的最佳解决方案是什么?
BaseJob.cs
public virtual void Execute(IJobExecutionContext context)
{
var session = NHibernateFactory.OpenSession();
CurrentSessionContext.Bind(session);
DoJob(context);
CurrentSessionContext.Unbind(
SessionManager.Instance.SessionFactory);
session.Close();
}
protected abstract void DoJob(IJobExecutionContext context);
使用这个解决方案会不会很好?
protected override void DoJob(IJobExecutionContext context)
{
CurrentSessionContext.Unbind(SessionManager.Instance.SessionFactory);
SessionManager.CurrentSession.Close();
var session = NHibernateFactory.OpenSession();
session.Connection.ConnectionString = "somestring";
CurrentSessionContext.Bind(session);
// Do stuff
}