我有以下代码:
联系
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
实体,然后更新它。
这似乎是一种可怕的方式,因为我没有使用真正的原始实体,因此我失去了连续的解决方案,并且总是必须重新创建对象似乎很麻烦。
有更简单的方法吗?我看这一切都错了吗?