0

皆さん、

標準の 3 層アーキテクチャでは、Linq2SQL dbml ファイルをどこに置きますか?

あなたの答えは ado.net エンティティ データ モデルと同じですか?

dbml ファイルが中間層にある場合、データ層はありますか?

よろしく、

ブレット

4

2 に答える 2

0

DBMLはデータレイヤーの一部である必要があり、ビジネスレイヤーに直接公開されてはなりません。代わりに、エンティティの取得と保存のメソッドを公開し、永続性の詳細との相互作用を隠蔽するのが最善です(この場合はLinq2Sqlですが、抽象化することで、後でLinq2Entitiesなどに変更できます。アプリ)。

これは、複数のクエリを実行し、データを少し操作してエンティティを作成する必要がある場合や、保存時に追加の作業(子テーブルの外部キーの処理など)を行う必要がある場合にも適したモデルであり、これらの詳細を非表示に保ちます。他の層。

L2Sqlのシリアル化がうまくいかないというStevenのコメントに関しては、残念ながら、Linq2Sqlのビルダーが提供するものをそのまま使用すると当てはまります。ただし、部分クラスでのいくつかの回避策は、それを簡単にクリーンアップします。

于 2010-06-02T13:25:59.450 に答える
0

DBML は確かに中間層にあります。LINQ to SQL は、データ層 (SQL Server データベース) に対してクエリを実行します。通常、LINQ to SQL は中間層の最下層にあり、LINQ to SQL エンティティをネットワーク経由で送信することはありません (適切にシリアル化されません)。

Entity Framework を使用すると、アーキテクチャはよく似ていますが、EF ではドメイン オブジェクトをネットワーク経由で送信できる点が異なります。特に、EF とうまく統合する新しいテクノロジ (OData など) が登場しています。

于 2010-06-02T11:46:25.393 に答える