我只在web場景中使用linq-to-sql。我知道建議始終將datacontext包裝在使用中,但僅限於web場景中,這是我正在設計的場景,這並不是必須的,因爲每個頁面都會在很短的時間內產卵並死亡。linq-to-sql datacontext類的設計問題?
在這種背景下,我已經看了一些擴展我的LINQ到SQL類的這樣
public partial class aspnet_User
{
MainDataContext _dc = new MainDataContext();
public MainDataContext DataContext
{
get
{
return _dc;
}
set
{
_dc = value;
}
}
public static aspnet_User GetUser(Guid guid)
{
//Here I load the user and associated child tables.
//I set the datacontext for the aspnet_User with the local DC here
}
//_dc.SubmitChanges()
public SaveUser()
所以,這是設計的結構,我使用,它似乎很好的工作我的情況。我的問題的一部分是我使用這個內置的成員資格結構,並試圖添加到它更容易,然後重新創建自己的,但有一定的限制。當然,對象的接口的確切組成並不理想,因爲一些功能是跨越數據庫表分層的,無論好壞。
我的問題是,對於一些子對象,如aspnet_Membership,我也擴展了它自己的DC。但是,我沒有任何機制可以更新所有兒童DC,而無需手動設置每個兒童DC。
我想看到各種設計解決方案需要最少的編碼,可以用一種有點優雅的方式解決這個問題。
此外,任何關於對象分層的詳細和具體的建議可能會被讚賞。這可能是一箭雙鵰。
是的,我也這樣做了,但決定使用linq-to-sql功能對於某些任務,特別是查詢來說很方便。我決定使用DRY原則之後的基類linq-to-sql類,而不是僅爲結果創建類。現在,我想起它嗯。我會留下來,因爲DC是一個可以解決的更普遍的問題。 – 2010-06-22 18:47:30