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);
    }
}
运行时没有任何错误,但my
bankAccountElement
不会更改。 请帮助我。

首先附加(实体状态=未更改),然后使用与附加实体相同的值设置值,使其保持不变

你应该这样做

    _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;
你可以读更多