IsiR_19 Ответов: 1

Как обновить свойство в моей Entity entity framework


Привет Ребята

В настоящее время у меня есть проблема со следующим.

Я использую Entity framework с mvc и пытаюсь сохранить некоторые данные в соответствии с моделью.

Таким образом, это процесс, который в настоящее время происходит с точки зрения пользователя
Пользователи создают запись
Сохранить запись
и иметь возможность скопировать запись с одним или двумя обновлениями и сохранить как новую запись.

Проблема, с которой я сталкиваюсь, заключается в том, что когда они пытаются сохранить первую запись, существует метод, который генерирует ключ для записи, запись сохраняется без каких-либо проблем. если пользователь попытается скопировать и сохранить ключ после его создания, а я попытаюсь добавить запись, то получу следующую ошибку: "свойство является частью ключевой информации объекта и не может быть изменено"

Что я уже пробовал:

Это мой текущий код

public void Add(Customer entity)
        {
            
            if (entity.PortalId == new Guid("{00000000-0000-0000-0000-000000000000}"))
            {
         
                entity.PortalId = Guid.NewGuid();
            }
            this.DbContext.Suppliers.Add(entity);
         
        }

johannesnestler

пусть база данных сгенерирует ваш ключ! - таким образом, эта проблема разрешится сама собой, или удалите ключевой атрибут (или соглашение) из вашей модели-кода (не рекомендуется это делать) и обработайте ключи самостоятельно - но опять же: не делайте этого!

johannesnestler

но почему вы не позволяете базе данных генерировать ключ?

1 Ответов

Рейтинг:
5

sifiso.m

Попробуйте удалить оператор if и просто сгенерировать новый идентификатор.


IsiR_19

Новый идентификатор генерируется и обновляется перед добавлением

sifiso.m

Прежде чем добавить.

сущность.PortalId = Guid.Метод newguid();
этот.DbContext.Поставщики.Добавить (сущность);

должен работать.

IsiR_19

пробовал и до сих пор дает мне ту же ошибку