私はEntity Frameworkが初めてです。私はWPFアプリケーションでデータベースを操作するために使用しています。このブログのようにモデルを作成しましたが、それを自分のアプリケーションで使用したいと考えています。
次のようなエンティティを取得および変更する方法を知っています。
DatabaseContext ct = new DatabaseContext();
var person = ct.Persons.Find(1);
person.Name = "NewName";
ct.SaveChanges();
ただし、ユーザー入力を待機するアプリケーションでは、これはデータ コンテキストを ViewModel 内に維持することを意味し、あまり望ましくありません。代わりに、次のようなことをしたいと思います。
class PersonViewModel {
Person psn;
public PersonViewModel(int PersonId) {
DatabaseContext ct = new DatabaseContext();
psn = ct.Persons.Find(1);
}
public Save() {
DatabaseContect ct = new DatabaseContext();
ct.Persons.Update(psn); // (There is no Update() method.)
ct.SaveChanges();
}
}
やり方がわかりませんUpdate()
。
次のように定義された DatabaseContext があります。
public partial class DatabaseContext: DbContext
{
public DbSet<Person> Persons { get; set; }
}
しかし、私は を持っていないようです。これはDatabaseContext.ObjectStateManager
、同様の問題の解決に使用する人もいます。これがなぜなのかわかりません-POCOオブジェクトの使用に関連していますか?
これをどのように解決すればよいですか?