14

私はObjectContextsかなり長い間使用しています。ObjectContextsVS 2012をインストールしたので、驚いたことに、エンティティデータモデルには、andEntityObjectsの代わりにDbContextsandを作成するコード生成アイテムのオプションがありませんPOCOs

現在非推奨ですか?クラスはまだ利用可能ですが、ObjectContextEDMXの出力として使用する方法はありません。

4

3 に答える 3

19

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ツールの変更に関する詳細については、こちらをご覧ください。

于 2012-11-28T21:06:10.063 に答える
3

マイクロソフトはEF5.x DbContext Generator、新しいプロジェクトにをお勧めします。これは、VS2012のデフォルトのテンプレートです。PreVS2012ユーザーは、ExtensionManager(EF5.xを検索)を使用して見つけるか、ここからダウンロードできます。

もちろん、ここにあるテンプレートをEntityObjects使用ObjectContextして生成することもできますEF4.x EntityObject Generator

設定方法については、こちらをご覧ください。

于 2012-11-28T17:56:07.367 に答える
2

を使用してEDMXを生成する方法はわかりObjectContextませんが、非推奨ではありません。DbContext99%のユーザーにとって、の機能ObjectContextは必要ないため、が使用されます。

DbContextただし、からObjectContextへの参照を取得できます。((IObjectContextAdapter)dbContext).ObjectContext

于 2012-11-28T17:56:21.833 に答える