有人可以就性能、内存使用、编码的便利性、正确的做法等因素在使用语句中包装 DataContext 或不在 LINQ-SQL 中包装 DataContext 之间的优缺点发表意见吗?
更新:在一个特定的应用程序中,我体验到,如果没有将 DataContext 包装在 using 块中,由于没有为 GC 释放活动对象,内存使用量会不断增加。如在下面的示例中,如果我持有对 q 对象列表的引用并访问 q 的实体,我将创建一个不为 GC 释放的对象图。
使用 DataContext
using (DBDataContext db = new DBDataContext())
{
var q =
from x in db.Tables
where x.Id == someId
select x;
return q.toList();
}
DataContext 不使用并保持活动状态
DBDataContext db = new DBDataContext()
var q =
from x in db.Tables
where x.Id == someId
select x;
return q.toList();
谢谢。