1

次のコードがあります。

連絡を取る

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 Web フォームを使用していますが、ステートレス モデルのため、.NET 内で作業を続けることができませんDbContext。このため、基本的に POST データからエンティティ全体を再Contact作成してから更新することになります。

これは恐ろしい方法のように思えます。なぜなら、私は真の元の実体を扱っていないため同時解決を失い、オブジェクトを常に再作成しなければならないのはちょっと面倒に思えるからです。

これを行う簡単な方法はありますか?私はこれをすべて間違って見ていますか?

4

0 に答える 0