2014/01/03

[Entity Framework] ObjectContext の Refresh メソッドなどが表示されない・使えない場合の対処方法


Entity Framework ネタが続きますが・・・。

System.Data.Objects.ObjectContext で、Refresh メソッドなどのメソッドが Visual Studio のコードアシストで表示されず、非常に困っていました。

でも、MSDN ライブラリやネット上のサンプルでは使用しているんですよね。

使用できない原因は分かりませんが、対処方法は分かりましたので記載しておきます。

using (var context = new ItemContext())
{
  //もろもろの処理

  ((IObjectContextAdapter)context).ObjectContext.SaveChanges();
}

ObjectContext のインスタンスを IObjectContextAdapter でキャストし、そのプロパティの ObjectContext を使用することで、Refresh メソッドが表示されるようになります。

上記の、SaveChanges メソッドで正しくデータをデータベースに保存できたので、参照などは問題なくできていると思います。

いやぁ、これは分かりませんよ。。。

 

■参考サイト


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

関係あるかどうかわかりませんが、
どうもEF5からモデルファーストで生成されるコードが
ObjectContextからDbContextに変更になったようですね。
おかげでめちゃくちゃハマりました・・・。
http://d.hatena.ne.jp/aoki1210/20130519/p1

なるほど。そういうことですか。
ネット上にあるサンプルはみんなObjectContextを使えてるからなんでか疑問でした。
情報ありがとうございます!

コメントを書く



プロフィール