powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC+EF vs MVC+ADO.NET. Производительность
5 сообщений из 5, страница 1 из 1
MVC+EF vs MVC+ADO.NET. Производительность
    #37891255
Фотография Глупые Снежинки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дано mvc-приложение, mssql server 2008 (сервер в инете, не в локалке)
для теста выключаем пулинг
1) mvc+ef:
а) создаем экземпляр репозитория в модели
б) репозиторий создает контекст
в) дергаем первые 100 записей из сферической таблицы в вакууме: ~ 900-1500 мс
2) mvc+adonet:
а) создаем экземпляр репозитория в модели
б) дергаем первые 100 записей из сферической таблицы в вакууме: ~ 400-1100 мс (SqlCommand + SqlDataReader)

Такая скорость EF'a связана с тем, что каждый раз при создании модели, создается и контекст, а значит происходит конфигурация всех DbSet'ов, настройка отношений и т.п.
Итого имеем: n пользователей, n моделей, n контекстов.
Можно ли избавиться от создания контекста при каждом запросе странички? Кэширование я так понимаю не подойдет, так как в этом случае context превратится фактически в синглтон.
...
Рейтинг: 0 / 0
MVC+EF vs MVC+ADO.NET. Производительность
    #37891305
bazaea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глупые Снежинки,

Или смирись с тем, что EF тормознутее ридеров или сделай все на ридерах. Ну или в поиск - тут много граблей и велосипедов закопано.
...
Рейтинг: 0 / 0
MVC+EF vs MVC+ADO.NET. Производительность
    #37891321
Фотография Глупые Снежинки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон, переработал, конечно же не в модели, а в контроллере. опечатка в 1м посте

вот код для лучшего понимания вопроса
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public class MyController : Controller
{
  private readonly IMyRepository myRepository;

  public MyController() : this(new MyRepository())
  {}

  public MyController(IMyRepository myRepository)
  {
    this.myRepository = myRepository;
  }

  public ActionResult Index()
  {
    return View(myRepository.GetData());
  }
}


если MyRepository юзает EF каждый раз при запросе странички создается контекст и выполняется код FluentAPI OnModelCreating, что есесно не быстро.
С классическим АДОНЕТ такого нет.
...
Рейтинг: 0 / 0
MVC+EF vs MVC+ADO.NET. Производительность
    #37891325
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глупые Снежинки,

авторТакая скорость EF'a связана с тем, что каждый раз при создании модели, создается и контекст, а значит происходит конфигурация всех DbSet'ов, настройка отношений и т.п.
Долго он создается только 1й раз на домен приложения, из-за
msndПрежде чем платформа Entity Framework сможет выполнять запросы к концептуальной модели или сохранять изменения в источнике данных, ей необходимо создать набор локальных представлений запросов для доступа к базе данных.
Посмотрите:
Вопросы производительности (платформа Entity Framework)
P.S. У меня гораздо больше строк выгружается за 200-400 мс, с передачей на клиента (wcf-сервис). 1 Контекст на 1 запрос к сервису.
...
Рейтинг: 0 / 0
MVC+EF vs MVC+ADO.NET. Производительность
    #37891349
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глупые Снежинкипардон, переработал, конечно же не в модели, а в контроллере. опечатка в 1м посте

вот код для лучшего понимания вопроса
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public class MyController : Controller
{
  private readonly IMyRepository myRepository;

  public MyController() : this(new MyRepository())
  {}

  public MyController(IMyRepository myRepository)
  {
    this.myRepository = myRepository;
  }

  public ActionResult Index()
  {
    return View(myRepository.GetData());
  }
}


если MyRepository юзает EF каждый раз при запросе странички создается контекст и выполняется код FluentAPI OnModelCreating, что есесно не быстро.
С классическим АДОНЕТ такого нет.

Вы, кстати, не правы, OnModelCreating вызывается 1 раз и не привязан к созданиям экземпляров DbContext (выполняется в момент 1 запроса, видимо при создании ObjectContext)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC+EF vs MVC+ADO.NET. Производительность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]