私はObjectContexts
かなり長い間使用しています。ObjectContexts
VS 2012をインストールしたので、驚いたことに、エンティティデータモデルには、andEntityObjects
の代わりにDbContexts
andを作成するコード生成アイテムのオプションがありませんPOCOs
。
現在非推奨ですか?クラスはまだ利用可能ですが、ObjectContext
EDMXの出力として使用する方法はありません。
私はObjectContexts
かなり長い間使用しています。ObjectContexts
VS 2012をインストールしたので、驚いたことに、エンティティデータモデルには、andEntityObjects
の代わりにDbContexts
andを作成するコード生成アイテムのオプションがありませんPOCOs
。
現在非推奨ですか?クラスはまだ利用可能ですが、ObjectContext
EDMXの出力として使用する方法はありません。
ObjectContextは非推奨ではありません。実際、DbContextはObjectContextの上の単なるレイヤーです。DbContext APIのAPIははるかに優れており、操作が簡単です。また、POCOエンティティははるかにクリーンです。これがコード生成を変更する理由でした。それでもObjectContextおよびEntityObjectベースのエンティティを使用する場合は、*。edmxファイルの下にある*.ttファイルを削除します。edmxファイルをダブルクリックして、デザイナで開きます。デザイナーの画面をクリックします。プロパティで、「コード生成戦略」を「なし」から「デフォルト」に変更します。
編集
VS2013に同梱されているEF6デザイナーでは、動作が少し変更されています(VS2012ではダウンロードできます)。EF5を使用している場合、2つのオプションは「T4」と「LegacyObjectContext」です。EF6を使用している場合、ドロップダウンは無効になっています。EF6アプリでObjectContextを使用する場合は、EF6用のエンティティオブジェクトジェネレーターを使用する必要があります(このリンクはテンプレートの1つのバージョンのみを指していることに注意してください。ただし、実際には、必要なものに応じていくつかのバージョンがあります-C#とVB。 NET、WebSite非WebSite-ここにリストがあります)。EF6ツールの変更に関する詳細については、こちらをご覧ください。
を使用してEDMXを生成する方法はわかりObjectContext
ませんが、非推奨ではありません。DbContext
99%のユーザーにとって、の機能ObjectContext
は必要ないため、が使用されます。
DbContext
ただし、からObjectContextへの参照を取得できます。((IObjectContextAdapter)dbContext).ObjectContext