Удаление EF DbContext в контроллере ASP.NET MVCC#

Место общения программистов C#
Ответить
Anonymous
 Удаление EF DbContext в контроллере ASP.NET MVC

Сообщение Anonymous »

Я хочу убедиться, что я удаляю свои объекты EF DbContext.
В настоящее время я использую статические методы для вызова операций EF crud, чтобы все данные уровня данных были помещены в черный ящик и вне контроллеров.
В приведенном ниже примере у меня есть один метод, который возвращает IQueryable и использует оператор using, который вызывает исключение, когда запрос пытается выполниться в удаленном контексте объект.
Другой не использует оператор using и работает нормально, но удаляется ли он?
Должен ли я просто вернуть IEnumerable вместо IQueryable?
public class MyContext : DbContext
{
public MyContext() : base("MyConnectionString")
{
Database.SetInitializer(null);
}

public DbSet Users { get; set; }
public DbSet Roles { get; set; }
}

public class Data
{
// Fails when IQueryable tried to run against a disposed MyContext object
public static T Get(params string[] joins)
{
using (var context = new MyContext())
{
return context.Get(joins);
}
}

// Works fine but when is it disposed?
public static T Get(params string[] joins)
{
return new MyContext().Get(joins);
}
}

public ActionResult GetUser(int id = 0)
{
var data = Data.Get();
return View("Users", model);
}


Подробнее здесь: https://stackoverflow.com/questions/453 ... controller
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»