に動作していない更新添付する。エラーはスローされず、データベース内の値は更新されません。エンティティフレームワークは、私は次のようにエンティティフレームワークを使用してPOCOオブジェクトを更新しようとしている
私が試した:
context.Jobs.AttachTo("Jobs", job);
context.SaveChanges();
何も悪事、まだエラーなし更新を。
に動作していない更新添付する。エラーはスローされず、データベース内の値は更新されません。エンティティフレームワークは、私は次のようにエンティティフレームワークを使用してPOCOオブジェクトを更新しようとしている
私が試した:
context.Jobs.AttachTo("Jobs", job);
context.SaveChanges();
何も悪事、まだエラーなし更新を。
ObjectState
を変更するにはどうすればよいですか?
context.ObjectStateManager.ChangeObjectState(job, System.Data.EntityState.Modified);
私はthis answerの第2部分を切り離されたオブジェクトで作業していると思います。
あなたが最初の仕事を得るために持っている、あなたは成功し、それを更新することができ、以下のCHKは、対応するJobs.csファイルがコミットされたとき、これは動作しない場合がありますことを、別の理由がある
var job = context.Jobs.Where(p => p.Id == id).FirstOrDefault();
//apply your changes
job.Title = "XXXX";
///....
context.SaveChanges();
var job = context.Jobs.SingleOrDefault(p => p.Id == id); – jolySoft
スニペットが、.edmxファイルはありません。つまり、プロパティは存在していてもマッピングされていないため、EFは変更されたオブジェクトを考慮しません。たとえば、次のように
...
using (var dao = new DbContext())
{
dao.Jobs.Attach(job);
job.SomeProperty = 1234; // SomeProperty exists but is not in the .edmx
dao.SaveChanges();
}
SomePropertyがJobs.csに存在するが、.edmxファイルから欠落している、このコードはコンパイルして何が間違っているが、SomePropertyがデータベースで更新されないことをヒントなしで実行するかどうか。この1つを見つけるために私を一日の最高の部分に連れて行った。
EF6はそのコンテキストを現在の状態に保つための精神を持っています.Entry(job).State = System.Data.Entity.EntityState.Modified – matto0
EFのAPIは、レンガの壁と話すようなものです。 –