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を使えてるからなんでか疑問でした。
情報ありがとうございます!

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから