2012-11-27 9 views
51

データベースコンテキストから新しく追加されたオブジェクトのリストを返す必要があります。ObjectStateManagerプロパティがDBコンテキストに存在しないのはなぜですか?

私はこの目的のためにObjectStateManagerを使用する必要があることを読んだ。問題は、データベースのコンテキストにObjectStateManagerというプロパティがないことです。

オブジェクトを追加、更新しても、コンテキストはうまく動作します。

私は私が何ができるのEF 5.0

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 

を使用していますか?

+1

- あなたが見たように、 'ObjectStateManager'は動作しますが、あなたはそれを必要としません。 'DbContext'から派生したクラスは、[' ChangeTracker'](http://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext.changetracker(v = v103).aspx)を使うことができます。その情報を取得するためのプロパティ。 – hvd

答えて

92

はこれを試してみてください:

var manager = ((IObjectContextAdapter)dbContext).ObjectContext.ObjectStateManager; 
+0

これは機能します! :)それは何かに割り当てられる必要があります – Kenci

+0

@Kenci編集のためにありがとう:) –

8

ことは、これを試してみてください: "私は、このためにObjectStateManagerを使用する必要があります"

dbContext.Entry(entity).State = EntityState.Modified; 
+0

それは正確に答えではありませんが、私は問題を解決するのを助けた –

関連する問題