bellow错误发生在我想要更新我的实体时。 我正在检查所有物体。看来一切都很好
public int Update(T entity)
{
T data = _entities.Find(entity);
_entities.Update(data);
return context.SaveChanges();
}
System.ArgumentException:'在以下位置调用的位置0处的键值 'DbSet.Find'的类型为'Hazine',与 属性类型为“字符串”。
答案 0 :(得分:0)
必须将主键作为参数发送给find方法。可以使用:
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();
}