【问题标题】:How to quickly update an ADO Entity?如何快速更新 ADO 实体?
【发布时间】:2012-08-02 14:20:16
【问题描述】:

我的实体有很多属性,我不想手动执行类似的操作

public void Update(Contact cont)
    {
        using (var ctx = new DatabaseEntities())
        {
            var res = from n in ctx.Contacts
                          where n.ContactID == cont.ContactID
                          select n;

            var selContact = res.First();
            selContact.AddressSuiteNumber = cont.AddressSuiteNumber;
            selContact.PhoneNumber = cont.PhoneNumber;
            /* and doing this for eeeeeeevery 40 properties */
            ctx.SaveChanges();

        }

    }

我试过了

selContact = cont

无济于事。有没有这样一种快速的方法可以将数据从在 Update() 方法中作为参数传递的实体实例复制到 LINQ 选择中找到的那个实例,然后保存?

【问题讨论】:

  • 我找到了this 有人有其他想法吗?

标签: c# .net frameworks ado.net entity


【解决方案1】:

如果您的实体尚未附加到上下文,您可以尝试附加它并将其状态更改为Modified

using (var ctx = new DatabaseEntities())
{
    ctx.Contacts.Attach(cont);

    // Marks all properties as modified, so new values will be pushed to DB on SaveChanges
    ctx.ObjectStateManager.ChangeObjectState(cont, System.Data.EntityState.Modified);

    ctx.SaveChanges();
}

【讨论】:

    猜你喜欢
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2019-06-03
    • 2010-09-09
    • 2013-06-28
    • 1970-01-01
    • 2016-06-05
    相关资源
    最近更新 更多