c# – 关于在Linq中重用db上下文的意见
|
我有一个使用
linq访问数据库的类.一些方法称其他方法.例如:
class UserManager
{
public User[] getList()
{
using(var db = new MyContext())
{
return db.Users.Where(item => item.Active == false);
}
}
public User[] addUser(string name)
{
using(var db = new MyContext())
{
db.Users.InsertOnSubmit(new User() { id = Guid.NewId(),name = name,active = false ...});
}
return getList();
}
… 在对addUser的调用中,我需要返回新列表. (我知道它不是很好的设计,但为了简单起见,我已经删除了细节.)但是,对getList的调用会创建第二个数据上下文. 我可以用额外的方法填写这个,即: public getList()
{
using(var db = new MyContext())
return getList(db);
}
public getList(MyContext db)
{
...
}
然后在addUser中替换我的调用,以保持相同的数据上下文. 我似乎在我的代码中看到了很多类型的东西,我担心创建和释放所有这些数据上下文的成本.有没有人对是否值得投入额外的工作以消除这些背景的创建和删除有意见? 解决方法
Microsoft提供以下建议/建议,以避免重用DataContext实例
http://msdn.microsoft.com/en-us/library/bb386929.aspx
常见问题(LINQ to SQL)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
