我正在使用第三方SDK连接到运行相应第三方数据库的服务器。
当用户访问我的ASP.NET MVC 4.0网站时,他不必提供凭据;连接是匿名的,并且服务器对象在每次调用控制器时被实例化。
这很慢,因为实例化此Server对象本身需要几秒钟。我真正想要的是创建一次对象并重用它。我知道我可以使用会话变量来实现这一点,但这不是一个优雅的解决方案,并且在会话变量过期时会出现问题。
有没有更好的方法来做到这一点?
如果您将创建带有静态变量的类
class DB { public static <Type> DB {get;set;} }
您将遇到问题,因为所有用户都将使用单个DB连接。 因此,您需要创建带有静态对象列表的类,该类将包含DB连接和UserID。您需要创建方法:
AddConnectionForUser(<Type> UserID)//on login RemoveConnectionForUser(<Type> UserID)//on logoff GetConnectionForUser(<Type> UserID)