Как решить «Операция не может быть завершена, потому что был удален DbContext». во время сохранения операции? - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь вставить данные в таблицу, которая имеет отношение к другой таблице, которая, в свою очередь, связана с другой таблицей. При попытке вставить данные в таблицу я получаю исключение

Операция не может быть завершена из-за удаления DbContext

Код:

    using (var transaction = _crmContext.Database.BeginTransaction())
    {
        try
           {
             if (primaryPersonContact.Id > 0)
                    {
                        _crmContext.Entry(primaryPersonContact).State = EntityState.Modified;
                        await _crmContext.SaveChangesAsync().ConfigureAwait(false);
                    }
                    else
                    {
                        customer.Person.Contact2 = _crmContext.Set<Contact>().Add(customer.Person.Contact2);
                        await _crmContext.SaveChangesAsync().ConfigureAwait(false);
                    }
if (primaryPersonContact.Id > 0)
                    {
                        _context.Entry(primaryPersonContact).State = EntityState.Modified;
                        //_crmContext.Entry(customer.Person.Contact2).State = EntityState.Modified;
                        await _crmContext.SaveChangesAsync().ConfigureAwait(false);
                    }
                    else
                    {
                        primaryPersonContact = _crmContext.Set<Contact>().Add(primaryPersonContact);
                        await _crmContext.SaveChangesAsync().ConfigureAwait(false);
                    }

                        if (primaryContactPerson.Id > 0)
                    {
                        _crmContext.Entry(primaryContactPerson).State = EntityState.Modified;
                        await _crmContext.SaveChangesAsync().ConfigureAwait(false);
                    }
                    else
                    {
                        primaryContactPerson.PrimaryContact = primaryPersonContact.Id;// to insert contact table Id to person Table.
                        primaryContactPerson = _crmContext.Set<Person>().Add(primaryContactPerson);
                        await _crmContext.SaveChangesAsync().ConfigureAwait(false);
                    }

                    if (customer.Id > 0)
                    {
                        _crmContext.Entry(customer).State = EntityState.Modified;
                        await _crmContext.SaveChangesAsync().ConfigureAwait(false);
                    }
                    else
                    {
                        customer.CustomerId = Guid.NewGuid();
                        customer.PrimaryContact = primaryContactPerson.Id; //To insert primary contact person Id to customer table.
                        customer = _crmContext.Set<Customer>().Add(customer);
                        await _crmContext.SaveChangesAsync().ConfigureAwait(false);
                    }
                    transaction.Commit();

Ошибка возникает на линии

await _crmContext.SaveChangesAsync().ConfigureAwait(false);

В чем проблема? Что я делаю не так?

...