Entity Framework上下文对象实现Dispose()方法,该方法"释放对象上下文使用的资源".它真的有什么作用?总是将它放入using {}语句会不会是一件坏事?我已经看到它使用和不使用using语句.
我特意要在WCF服务方法中使用EF上下文,创建上下文,做一些linq并返回答案.
编辑:似乎我不是唯一一个对此感到疑惑的人.另一个问题是Dispose()方法中真正发生了什么.有人说它关闭了连接,有些文章没有说.这是怎么回事?
我想知道在使用Web站点的上下文类连接到db时,性能和一般最佳实践的差异是什么.考虑这两种不同的方法时,最好的方法是什么:
public class Repository()
{
Private Context context;
public List<User> GetUsers()
{
return this.context.Users.ToList();
}
Run Code Online (Sandbox Code Playgroud)
要么
public class Repository()
{
public List<User> GetUsers()
{
using (Context context = new context())
{
return context.Users.ToList();
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果它将结果作为a List或as 返回是否重要IEnumerable?
只要我不使用注释掉的using语句,以下代码就可以工作.当我用using我得到The operation cannot be completed because the DbContext has been disposed
public IQueryable<DTOs.FormQuestionDTO> GetForm(int id, int page = 0)
{
// FS stores pages starting with 1
page = page == 0 ? 1 : page;
//using (var db = new Models.FormEntities())
//{
var db = new Models.FormEntities();
var questions = from fq in db.FormQuestions
join q in db.Questions on fq.QuestionId equals q.QuestionId
where (fq.FormId == id) && (fq.PageNumber == page) && fq.Disabled == false …Run Code Online (Sandbox Code Playgroud)