C# 应用当前值时实体框架更新问题
此代码在尝试更新数据库时出错 错误:具有以下键的对象: 匹配所提供对象的键 在中找不到 ObjectStateManager。验证 提供的对象的键值 将对象的键值与 必须应用哪些更改C# 应用当前值时实体框架更新问题,c#,entity-framework-4,C#,Entity Framework 4,此代码在尝试更新数据库时出错 错误:具有以下键的对象: 匹配所提供对象的键 在中找不到 ObjectStateManager。验证 提供的对象的键值 将对象的键值与 必须应用哪些更改 可能是您的型号。edmx不是最新的?//数据库已更改 根据您的设置/环境,我认为只需在正确的实体上下文(从中创建UpdateObject)上的.SaveChanges()即可在db中进行更新 所以ev只是_source.SaveChanges() 问候语可能是您的型号。edmx不是最新的?//数据库已更改 根据您的
可能是您的型号。edmx不是最新的?//数据库已更改 根据您的设置/环境,我认为只需在正确的实体上下文(从中创建UpdateObject)上的.SaveChanges()即可在db中进行更新 所以ev只是_source.SaveChanges()
问候语可能是您的型号。edmx不是最新的?//数据库已更改 根据您的设置/环境,我认为只需在正确的实体上下文(从中创建UpdateObject)上的.SaveChanges()即可在db中进行更新 所以ev只是_source.SaveChanges()
问候语
ApplyCurrentValues
仅当实体第一次从数据库加载时才起作用(如果您在加载实体之前没有使用相同的上下文,则很可能不会):
如果只想保存当前数据而不重新加载实体,请使用:
public void UpdateAccuralSettings(SystemTolerance updatedObject)
{
_source.SystemTolerances.Attach(updatedObject);
_source.ObjectStateManager.ChangeEntityState(updatedObject, EntityState.Modified);
_source.SaveChanges();
}
ApplyCurrentValues
仅在第一次从数据库加载实体时才起作用(如果在加载实体之前没有使用相同的上下文):
如果只想保存当前数据而不重新加载实体,请使用:
public void UpdateAccuralSettings(SystemTolerance updatedObject)
{
_source.SystemTolerances.Attach(updatedObject);
_source.ObjectStateManager.ChangeEntityState(updatedObject, EntityState.Modified);
_source.SaveChanges();
}
public void UpdateAccuralSettings(SystemTolerance updatedObject)
{
_source.SystemTolerances.Attach(updatedObject);
_source.ObjectStateManager.ChangeEntityState(updatedObject, EntityState.Modified);
_source.SaveChanges();
}