не может быть отслежен, потому что другой экземпляр с тем же значением ключа для {'Id'} уже отслеживается. При присоединении существующих объектов - PullRequest
0 голосов
/ 25 марта 2020

У меня ошибка при использовании для обслуживания в одном действии.

невозможно отследить, поскольку другой экземпляр с таким же значением ключа для {'Id'} уже отслеживается. При присоединении существующих сущностей Рассмотрите возможность использования 'DbContextOptionsBuilder.EnableSensitiveDataLogging', чтобы увидеть конфликтующие значения ключа

dbcontext code

 services.AddDbContext<DBDatacontext>(options =>
                 options.UseSqlServer(
                     Configuration.GetConnectionString("DefaultConnection")));

мой репозиторий

     IEnumerable<Post> Gets();
     bool Edit(Post model);


     public IEnumerable<Post> Gets()
    {
        return _db.Posts;
    }
     public bool Edit(Post model)
    {
        try
        {

            _db.Entry(model).State = EntityState.Modified;
            _db.SaveChanges();
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }

и сервис

    public IEnumerable<PostAdminVm> Gets()
    {
        var model = _repository.Gets();
        return _mapper.Map<IEnumerable<Post>, IEnumerable<PostAdminVm>>(model);
    }
    public bool Edit(PostAdminVm model)
    {
        try
        {
            var post = _mapper.Map<PostAdminVm, Post>(model);
            post.UDateTime = DateTime.Now;
            if (_repository.Edit(post))
            {
                return true;
            }
        }
        catch
        {
            return false;
        }
        return false;
    }

и использовать метод 2 в контроллере

    public ActionResult edit(PostAdminVm model1)
    {
        url = _post.Gets().Count() + 1;
        if (_post.Edit(model1))
        {
           return RedirectToAction("Index");
        }
    }

, но у меня возникает ошибка, когда использование интерфейса 2 в 1 не может быть отслежено, поскольку другой экземпляр с тем же значением ключа для {'Id '} уже отслеживается.

...