【发布时间】:2011-02-07 13:35:21
【问题描述】:
我需要根据 AppSetting 为我的 DataContext 设置 ConnectionString。我试图通过为每个 DataContext 创建一个部分类来做到这一点。以下是我到目前为止所拥有的,我想知道我是否忽略了什么?
具体来说,我是否正确处理了我的 DataContext(处置、陈旧等)?
这样做我会遇到更新和插入问题吗?文件BLLAspnetdb.cs 至少有用还是必要,或者应该所有这些都在生成的partial class AspnetdbDataContext 文件中?
简而言之,这是一个可以接受的结构,还是会在我详细说明时给我带来问题?
dbml 文件名 = Aspnetdb.dbml
部分类文件名 = Aspnetdb.cs
partial class AspnetdbDataContext
{
public static bool IsDisconnectedUser
{
get
{
return Convert.ToBoolean(ConfigurationManager.AppSettings["IsDisconnectedUser"]) == true;
}
}
public static AspnetdbDataContext New
{
get
{
var cs = IsDisconnectedUser ? Settings.Default.Central_aspnetdbConnectionString : Settings.Default.aspnetdbConnectionString;
return new AspnetdbDataContext(cs);
}
}
}
我创建的文件名 = BLLAspnetdb.cs
public class BLLAspnetdb
{
public static IList WorkerList(Guid userID)
{
var DB = AspnetdbDataContext.New;
var workers = from user in DB.tblDemographics
where user.UserID == userID
select new { user.FirstName, user.LastName, user.Phone };
IList theWorkers = workers.ToList();
return theWorkers;
}
public static String NurseName(Guid? userID)
{
var DB = AspnetdbDataContext.New;
var nurseName = from demographic in DB.tblDemographics
where demographic.UserID == userID
select demographic.FirstName +" " + demographic.LastName;
return nurseName.SingleOrDefault();
}
public static String SocialWorkerName(Guid? userID)
{
var DB = AspnetdbDataContext.New;
var swName = from demographic in DB.tblDemographics
where demographic.UserID == userID
select demographic.FirstName + " " + demographic.LastName;
return swName.SingleOrDefault();
}
}
请参阅上一个问题和公认的答案,了解我是如何到达这里的... switch-connectionstrings-between-local-and-remote-with-linq-to-sql
【问题讨论】:
-
作为奖励,如果有人有在非 WEB 环境中使用 L2S 的良好链接,我将不胜感激。我仍在为如何为我的 LOB 桌面应用程序构建它而苦苦挣扎。
标签: c# linq-to-sql datacontext data-access-layer