2011-12-28 7 views
23

ExecuteStoreQueryエンティティフレームワークの機能を使用したいと思っていましたが、コンテキスト変数にExecuteStoreQueryメソッドがないことに驚いていました。DbcontextでExecuteStoreQuery

私はそれがObjectContextクラスのメソッドであることを発見しましたが、すでに私のアプリケーションにDbContextを使用しました。 私は単にDbContextObjectContextに変更しようとしましたが、いくつかのエラーが発生しました(たとえば、ObjectContextではOnModelCreatingメソッドではありません)。

DbContextでExecuteStoreQueryを使用するにはどうすればできますか?DbContextでExecuteStoreQueryの代替手段はありますか?

答えて

37

DbContextは、単にObjectContextのラッパーです。

あなたはまだIObjectContextAdapter

(dbContext as IObjectContextAdapter).ObjectContext; 
+0

私は自分のアプリケーションで正常にこのメソッドを使用します。 – Hammerstein

34

を使用して、元のObjectContextにアクセスすることができ、私は正しい方法がある今だと思うことを追加したい:

dbContext.Database.SqlQuery<T>(string sql); 
+1

戻されたオブジェクトの変更を追跡する場合は、dbContext.tablename.SqlQueryを考慮する必要があります。(...)ここで、tablenameはコレクション名です。 (すなわち、DbSet) –