2011-12-28 19 views
23

Chcę użyć funkcji Entity Framework ExecuteStoreQuery i zastanawiałem się, że moja zmienna kontekstu nie ma metody ExecuteStoreQuery.ExecuteStoreQuery z Dbcontext

Odkryłem, że jest to metoda z klasy ObjectContext, ale już wcześniej użyłem DbContext dla mojej aplikacji. Po prostu próbowałem zmienić DbContext z ObjectContext, ale przyniósł pewne błędy (na przykład w ObjectContext nie jest metoda OnModelCreating).

Jak mogę użyć ExecuteStoreQuery z DbContext i jeśli nie mogę, czy są jakieś alternatywy dla ExecuteStoreQuery w DbContext?

Odpowiedz

37

A DbContext to po prostu opakowanie wokół urządzenia ObjectContext.

Nadal można uzyskać dostęp do oryginalnego ObjectContext za pomocą IObjectContextAdapter

(dbContext as IObjectContextAdapter).ObjectContext; 
+0

używam tej metody z powodzeniem w mojej aplikacji. – Hammerstein

34

chcę dodać, że myślę, że teraz jest poprawna metoda:

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

Aby śledzić zmiany zwróconych obiektów, należy wziąć pod uwagę dbContext.tablename.SqlQuery (...) gdzie nazwa tabeli jest nazwą kolekcji. (tj. DbSet) –

Powiązane problemy