这真的是更新分离实体的最佳方法吗?

时间:2013-05-23 13:23:39

标签: entity-framework entity-framework-5 webforms

我有以下代码:

联系

public Contact LoadContactFromId(int contactId)
    {
        using(var ctx = new ContactContext())
        {
            var contact = ctx.Contacts.AsNoTracking().First(c => c.ContactId == contactId);

            return contact;
        }
    }

更新联系人

public void UpdateExistingContact(Contact updatedContact)
    {
        using(var ctx = new ContactContext())
        {
            ctx.Contacts.Attach(updatedContact);

            ctx.Entry(updatedContact).State = EntityState.Modified;

            foreach (var item in updatedContact.ContactPoints)
            {
                ctx.Entry(item).State = (item.ContactPointId == 0) ? EntityState.Added : EntityState.Modified;
            }

            ctx.SaveChanges();
        }
    }

我目前正在使用ASP.NET webforms,由于其无状态模型,我无法继续在DbContext内工作。因此,我最终基本上从POST数据重新创建整个Contact实体,然后更新它。

这似乎是一种可怕的方式,因为我没有使用真正的原始实体,因此我失去了连续的解决方案,并且总是必须重新创建对象似乎很麻烦。

有更简单的方法吗?我看这一切都错了吗?

0 个答案:

没有答案