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