【发布时间】:2010-09-29 00:59:53
【问题描述】:
我想将站点的数据模块分离成一个程序集(单个 dll 文件), 在处理 Web 应用程序时,get-store 并传递网站的 ConnectionString 的最佳方式是什么。 在数据程序集中,我创建了一个名为 ConnectionManager 的静态类。它有一个名为 DatabaseConnectionName 的属性,我想传递并存储位于 Web.Config 文件中的连接名称。 在这个策略中,我决定在网站的加载时间在 Global.asax 文件中获取名称并建立连接,并在我之前提到的属性 (DatabaseConnectionName) 中进行连接。 但是,这只是我使用的策略,我不知道做这项工作的常见模式是什么。
部分代码: ==================================== = [ ------------ Global.asax ------------ ]
the code in the site that makes the Data module accessible for the site
void Application_Start(object sender, EventArgs e)
{
OurCompany.Data.ConnectionManager.DatabaseConnectionName = "MasterConnection";
}
[ ------------ ConnectionManager 类 ------------ ] 这是在站点之外的数据模块中
public static class ConnectionManager
{
public static SqlConnection GetMasterConnection()
{
string connectionString = ConfigurationManager.ConnectionStrings[**DatabaseConnectionName**].ConnectionString;
SqlConnection conn;
//conn.Open();
conn = new SqlConnection(connectionString);
return conn;
}
private static string **databaseConnectionName**;
public static string DatabaseConnectionName
{
get
{
return databaseConnectionName;
}
set
{
databaseConnectionName = value;
}
}
== END ============================================= ===============
--- 问题是:---
在哪里存储连接? (这是 ConnectionManager 类中的一个属性, theCompany.Data.ConnectionManager.DatabaseConnectionName)
什么时候建立这个连接? (这里是 Global.asax 应用程序加载时间)
哪种方法最适合存储此类信息 : SessionState 或 ViewState 或一个简单的属性
这个策略好不好?你知道任何更好的方法或 常见的模式?
感谢您提供任何信息 - MHM -
【问题讨论】:
-
我的朋友,我检查了那个结构和我的结构之间真的没有什么区别,只是我使用静态是有原因的,我将 db 的名称传递给我的方法,另一方面 ENT.DAL 只是为其数据库使用静态名称(例如 Mydatabese )。另外,您编写的代码的问题总是很好。
标签: asp.net data-access state-management