DbContext.Set のモックに関する他の質問に続いて、 EF Code First のモックに関する別の質問があります。
次のような更新方法があります。
if (entity == null)
throw new ArgumentNullException("entity");
Context.GetIDbSet<T>().Attach(entity);
Context.Entry(entity).State = EntityState.Modified;
Context.CommitChanges();
return entity;
Context は、私自身の DbContext のインターフェースです。
私が直面している問題は、どのように処理するかです
Context.Entry(entity).State
.
私はこのコードをステップ実行しましたが、Context インターフェイスの実装として実際のライブ DbContext がある場合に機能します。しかし、偽のコンテキストをそこに置くと、それを処理する方法がわかりません。
DbEntityEntry クラスのコンストラクターがないため、偽のコンテキストで新しいコンストラクターを作成することはできません。
CodeFirst ソリューションで DbEntityEntry をモックまたは偽造して成功した人はいますか?
または、状態の変化を処理するためのより良い方法はありますか?