2009-09-10 6 views
3

オブジェクトを操作してLINQ to SQLを利用する場合、アプリケーションがデータストアと通信できるようにエンティティクラスに何かを追加する必要がありますか? (ここでは、自分のビジネスオブジェクト内で必要なものを探しているので、ここではリポジトリパターンの説明は省略してください)LINQ to SQLはPOCOをサポートしていますか?

答えて

7

LINQ-to-SQLデザイナーを使用していて、あなたのための「ほぼPOCO」クラスを作成している(マッピングの属性がたくさん付いています)、外部マッピングXMLファイル(NHibernate )ので、追加の属性や何もせずに "真のPOCO"クラスをサポートすることができます。

詳細についてはこちらをご覧ください:

マルク・

1

Linq to SQLは、データストアから選択した各テーブルまたはストアドプロシージャに対してPOCOクラスを作成します。これらの作成されたクラスのスタイルに満足している限り、他のものを追加する必要はありません。

エンティティクラスにはDataContextオブジェクトが必要です。このオブジェクトは、生成されたLinq to SQLクラスを介して、データストアのすべてのテーブルへのアクセスを提供します。

SQLへのLINQの使用に良好な導入はここで見つけることができます:SQLへ

http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
+1

ない、彼は何かを作成LINQ to SQLのを望んでいることを確認、私は彼がしたいと思います既存のビジネスオブジェクトと共に使用します。 – mxmissile

+0

ええ - 彼らは帰属する必要があるので真のPOCOでもありません。 –

+1

属性を使用する必要はありません。代わりにXmlMappingProviderを使用できます。 – jrummell

3

LINQは、各テーブルまたはストアド・プロシージャの(ほぼ)POCOクラスを作成します。ただし、最小の[Table]属性を持つ、依然として帰属する必要があるため、純粋なPOCOクラスではありません。

詳細については、MSDNを参照してください。

FYI:Entity Framework 4は、POCOクラスのサポートを追加する予定です。

+0

私はNHibernateが必要とするものと、LINQ to SQLが必要とするもの(L2Sが真のORMではないことを無視する)を比較しようとしています。 –

関連する問題