C# 为什么EF代码第一次更新方法不起作用?
我有这个方法:C# 为什么EF代码第一次更新方法不起作用?,c#,entity-framework,updates,C#,Entity Framework,Updates,我有这个方法: public void Update(DBS.BankAccount entity) { try { using (var _nahidContext = new NahidContext()) { _nahidContext.BankAccounts.Attach(entity); var bankAccountElement = _nahidContext.Entry(entity
public void Update(DBS.BankAccount entity)
{
try
{
using (var _nahidContext = new NahidContext())
{
_nahidContext.BankAccounts.Attach(entity);
var bankAccountElement = _nahidContext.Entry(entity);
bankAccountElement.CurrentValues.SetValues(entity);
_nahidContext.SaveChanges();
//__________ or ___________
//var bankAccountElement = FindById(entity.Id);
//if (_nahidContext.Entry(bankAccountElement).State == System.Data.Entity.EntityState.Detached)
//{
// _nahidContext.BankAccounts.Attach(bankAccountElement);
//}
////_nahidContext.Entry(bankAccountElement).State = System.Data.Entity.EntityState.Modified;
//_nahidContext.SaveChanges();
}
}
catch (Exception ex)
{
throw new ArgumentException(ex.Message);
}
}
运行时没有任何错误,但mybankAccountElement
不会更改。
请帮助我。首先附加(实体状态=未更改),然后使用与附加实体相同的值设置值,使其保持不变
你应该这样做
_nahidContext.BankAccounts.Attach(entity);
var bankAccountElement = _nahidContext.Entry(entity);
bankAccountElement.State = EntityState.Modified;
您可以阅读更多内容,首先附加(实体状态=未更改),然后使用与附加实体相同的值设置值,使其保持不变
你应该这样做
_nahidContext.BankAccounts.Attach(entity);
var bankAccountElement = _nahidContext.Entry(entity);
bankAccountElement.State = EntityState.Modified;
你可以读更多