Ошибка при обновлении объекта в универсальном методе - PullRequest
0 голосов
/ 01 октября 2019

ниже ошибка возникает, когда я хочу обновить свою сущность. Я проверял все объекты. Кажется, все в порядке

public int Update(T entity)
{
    T data = _entities.Find(entity);
    _entities.Update(data);

    return context.SaveChanges();
}

System.ArgumentException: 'Значение ключа в позиции 0 вызова' DbSet.Find 'было типа' Hazine ', что не соответствует типу свойства'строка '.'

enter image description here, но когда я хочу обновить, произошла эта ошибка

1 Ответ

0 голосов
/ 01 октября 2019

Вы должны отправить первичный ключ в метод поиска в качестве параметра. Вы можете использовать:

Type t = entity.GetType();
PropertyInfo prop = t.GetProperty("Id");
object id= prop.GetValue(entity);   
T data = _entities.Find(id);

Вам не нужно извлекать объект из базы данных. Вы можете использовать следующий код:

public int Update(T entity)
{
    context.Entry(entity).State = EntityState.Modified;
    return context.SaveChanges();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...