Entity FrameworkのPOCOクラスとは何ですか?


ベストアンサー

POCO は、昔ながらの CLR(共通言語ランタイム)オブジェクトです。基本的にはドメイン内のエンティティです。エンティティフレームワークでは、通常、データベースファーストモデルではなくコードファーストモデルで役立ちます。このクラスは、特定のフレームワークまたはテクノロジーの機能を継承しません。これは単純なパブリッククラスであり、プロパティとメソッドのみが含まれています。これらのメソッドは、データベースからのデータの保存や取得などの永続的なロジックを実装していません。これらのクラスは、永続性無視クラスとも呼ばれます。基本的に、データベーステーブルの行と列と通信するためのレイヤーとして機能します。

Pocoクラスの例

public class Group

{

public int ID {get;セットする; }

public string GroupName {get;セットする; }

public ApplicationUser Member {get;セットする; }

public string GroupDescription {get;セットする; }

public ICollection ChatRooms {get;セットする; }

}

POCOはDTO [設計]

ADTOよりも優れた動作をします ” ■唯一の目的は状態を転送することであり、動作することはありません。このパターンの使用例については、MartinFowlerの DTOの説明を参照してください。

一方、POCOはOOPのルールに従います。状態およびの動作が必要です(必須ではありません)。POCOは、MartinFowlerによって造られたPOJOから取得されます[ anecdote here ]。彼は、フレームワークの重いEJB実装を拒否することをよりセクシーにする方法としてPOJOという用語を使用しました。POCOは.Netの同じコンテキストで使用する必要があります。フレームワークに指示させないでください。オブジェクトのデザイン。

.NETとエンティティフレームワークの詳細については、YouTubeチャンネルをご覧ください

ドットネット

回答

POCO(プレーンオールドCLRオブジェクト)は単にドメインのエンティティです。通常、エンティティフレームワークを使用すると、エンティティが自動的に生成されます。これはすばらしいことですが、残念ながらこれらはエンティティには、SOC(懸念の分離)に明らかに反するデータベースアクセス機能が散在しています。POCOは、データアクセス機能のない単純なエンティティですが、すべての EntityObject 機能的

  • 遅延読み込み
  • 変更の追跡

これが良いスタートです

POCOエンティティフレームワーク

コードジェネレーターを使用して、既存のエンティティフレームワークプロジェクトからPOCOを簡単に生成することもできます。

EF 5.XDbContextコードジェネレーター

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です