[英]LINQ 2 SQL: Partial Classes
我需要基於AppSetting為我的DataContext設置ConnectionString。 我試圖通過為每個DataContext創建一個Partial Class來做到這一點。 以下是到目前為止的內容,我想知道我是否忽略了某些內容?
具體來說,我是否正確處理了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-local-and-remote-with-linq-to-sql
您應該處理您的上下文,因為它是一次性的。 每當創建新上下文時,請考慮將語句包裝在using塊中。
我可以將靜態的“ New”屬性表示為“ Create”方法。 屬性創建新對象是不正常的,因此其他需要使用代碼的開發人員可能會對這種行為感到驚訝。
除此之外,您的方法將行得通。 當您獲取上下文時,確定連接字符串的邏輯將運行,您將獲得使用正確的連接字符串構造的上下文。
如果我是我,我不會所有的方法和屬性都是靜態的。 它違背了良好的OO設計,並使您非常專注於特定的實現-但是,我想這不在問題范圍內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.