В чем разница между вставкой данных в отключенном сценарии и вставкой данных в подключенном сценарии в EF Core? - PullRequest
0 голосов
/ 20 ноября 2018

В чем разница между вставкой данных в отключенном сценарии и вставкой данных в подключенном сценарии в EF Core?

Образец вставки данных в отключенном соединении:

     //Disconnected entity
    var std = new Student(){ Name = "Bill" };

    using (var context = new SchoolContext())
    {
        //1. Attach an entity to context with Added EntityState
        context.Add<Student>(std);

        //or the followings are also valid
        // context.Students.Add(std);
        // context.Entry<Student>(std).State = EntityState.Added;
        // context.Attach<Student>(std);

        //2. Calling SaveChanges to insert a new record into Students table
        context.SaveChanges();
}

и образец вставки данных вНа связи:

using (var context = new SchoolContext())
{
    var std = new Student()
    {
        FirstName = "Bill",
        LastName = "Gates"
    };
    context.Students.Add(std);

    // or
    // context.Add<Student>(std);

    context.SaveChanges();
}

Этот вопрос возник из этого сайта для меня => нажмите здесь

1 Ответ

0 голосов
/ 20 ноября 2018

В подключенном сценарии один и тот же экземпляр DbContext используется для извлечения и сохранения объектов.

В отключенном сценарии DbContext не знает о отключенных объектах, поскольку объекты были добавлены или изменены вне области действия.текущего экземпляра DbContext.Итак, вам нужно присоединить отключенные сущности к контексту с соответствующим EntityState, чтобы выполнять операции CUD (создание, обновление, удаление) с базой данных.

Я думаю, что подключенный сценарий - лучшее решение, потому что мы ненеобходимо создать новый объект сущности.

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