Entity Framework занимает 7 секунд, чтобы вставить объект - PullRequest
0 голосов
/ 21 марта 2020

После первого запуска приложения моему приложению требуется 7 секунд, чтобы вставить только одну сущность с 2 атрибутами.

Я использую. NET Framework в настольном приложении, Visual Studio 2019 Редакция сообщества, Entity Framework v6.0.0.0.

Я делаю какую-то ошибку? У кого-нибудь есть идеи?

Это мой код:

UserService UserService = new UserService();

User userObj = new User();
userObj.Name = "Arsi";
userObj.Age = 25;

// db.Users.Add(userObj);
// db.SaveChanges();
UserService.InsertUser(userObj);

CRUD_TestingEntities db = new CRUD_TestingEntities();

public void InsertUser(User user)
{
    if (user != null)
    {
        db.Users.Add(user);
        db.SaveChanges();
    }
}

Ответы [ 2 ]

0 голосов
/ 21 марта 2020

Вы делаете одну ошибку - вы обвиняете EF в том, что оно не отвечает. Например, обвинять автомобиль в неспособности быстро набрать 1006 * - в пробке c.

Если EF работает медленно при запуске, это запуск.

Если это происходит медленно Затем вам нужно перехватить SQL и исправить проблему с базой данных. EF просто выполняет простую инструкцию вставки - если БД занимает много времени, что-то не так на БД. Не ошибка ЭФ.

0 голосов
/ 21 марта 2020

У меня есть вся хранимая процедура, альтернативная Entity Framework, если вам интересно.

DataTier. Net: https://github.com/DataJuggler/DataTier.Net

Вот видео, которое показывает, как его использовать: (звук очень низкий) https://youtu.be/nS7pKZvOaSM

После того, как вы построите свой проект, включите файлы проекта, запустите сгенерированные хранимые процедуры, используя его так просто:

// create a new user
User user = new User();
user.Name = "Arsi";
user.Age = 25;

// Create a gateway
Gateway gateway = new Gateway();

// perform save
bool saved = gateway.Save(ref user);

Мне проще использовать, потому что это всего C# код.

Что касается того, почему EF работает медленно, вы можете добавить перехватчики и узнать SQL EF пытается выполнить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...