0

スタブ エンティティを使用して EF でフィールドを null に設定することは可能ですか?

私は自分のコードを次のように動作させたい:

 MyEntity myEntity = new MyEntity() { ID = detached.ID };
 ctx.MyEntities.Attach(myEntity);
 // The value in the table is non null, the value in detached is null.
 myEntity.myNullableField = detached.myNullableField;
 ctx.SaveChanges();

私が現在見ているのは、myEntity スタブ オブジェクトでフィールドを null に設定すると、EF はそれを変更なしとして検出し、データベース内のその列を更新しないということです。EF に強制的に null を変更として検出させ、データベースに保存させる方法はありますか?

4

1 に答える 1

3

null のフィールドを設定し (新しい空のエンティティを作成したため)、それに null を割り当てているため、変更はありません。

次の操作を行うと、プロパティを変更済みとしてマークできます。

 ctx.Entry(myEntity).Property(e => e.myNullableField).IsModified = true;

残念ながら、ちょっとしたハックのように感じます。

于 2013-04-29T16:18:45.170 に答える