请有人发表对于在LINQ-SQL中将DataContext包装在using语句中与不包装之间的优缺点的意见,包括性能、内存使用、编码容易度、正确性等方面的因素。
更新:在一个特定的应用程序中,我发现如果不将DataContext包装在using块中,由于实时对象没有被释放以进行垃圾回收,内存使用量会持续增加。例如,在下面的示例中,如果我保留q对象列表的引用并访问q的实体,则创建了一个不会被垃圾回收的对象图。
使用using的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();
谢谢。
DBDataContext
?我在EF中创建了所有的基础结构,现在我正在尝试访问数据。我所拥有的只有这个DataContext context = new DataContext(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
。 - Michel Ayres