ASP. NET Core MVC Microsoft.EntityFrameworkCore.DbUpdateException: 'Произошла ошибка при обновлении записей. Смотрите внутреннее исключение для деталей. - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть 2 модели, я пытаюсь их связать. Я создаю объект без ошибок, но если я пытаюсь редактировать и обновлять, я получаю ошибки.

This is Models

Save method realisation

Application DB Контекстный класс:

public class ApplicationDbContext:DbContext
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
        {

        }
        public DbSet<Person> Persons { get; set; }
        public DbSet<Address> Addresses { get; set; }
    }

Я думаю, что нашел решение, но не уверен, что оно правильное

public void Save(Person person)
        {
            if (person.PersonID == 0)
            {
                _context.Persons.Add(person);
            }
            else
            {
                Person dbEntry = _context.Persons.Include(p => p.HomeAddress)
                    .FirstOrDefault(p => p.PersonID == person.PersonID);
                if (dbEntry != null)
                {
                    dbEntry.FirstName = person.FirstName;
                    dbEntry.LastName = person.LastName;
                    dbEntry.Role = person.Role;
                    dbEntry.IsApproved = person.IsApproved;
                    dbEntry.HomeAddress.City = person.HomeAddress.City;
                    dbEntry.HomeAddress.Country = person.HomeAddress.Country;
                    dbEntry.HomeAddress.Line = person.HomeAddress.Line;
                    dbEntry.HomeAddress.PostalCode = person.HomeAddress.PostalCode;
                }
            }
            _context.SaveChanges();
        } 
...