0

n 層プロジェクトについて 1 つ質問があります

SOA の原則に基づいてアプリケーションを作成する方法を説明するビデオ レッスンを見ていました。まず、ビデオクラスが古いか、コードファーストのアプローチがなかった。

ビデオでは、開発者はエンティティ オブジェクトをビジネス レイヤーに取りました。彼によると、エンティティ フレームワークによってデフォルトで生成されたエンティティ オブジェクトを使用するのは良くないからです。

これにより、データ レイヤーで作成されたリポジトリは、データ レイヤーのエンティティ オブジェクトを使用する代わりに、エンティティ オブジェクト レイヤー モデルを使用します。

データレイヤーがビジネスレイヤーに依存していると考えると、これは奇妙に思えます

私はコード ファーストのアプローチを使用しており、エンティティ フレームワークとコンテキスト クラスをマッピングするために、データ レイヤーにオブジェクト エンティティを作成していたため、非常に混乱しました。

次のシナリオを想像しました: プレゼンテーション層 MVC プロジェクトが私のクラスをビジネス層で消費します。

私のリポジトリと作業単位を消費するビジネス層クラス

データ層 エンティティ オブジェクト 、リポジトリ 、作業単位 、コンテキスト クラス

では、なぜビジネス層でエンティティ オブジェクトを作成するのでしょうか? ?

私の英語、そのグーグル翻訳者について申し訳ありません。

どうもありがとうございます!!

4

2 に答える 2

0

n 層のシナリオでは、エンティティをデータ アクセス レイヤー (DAL) から、クライアントとサーバー間で共有できる追加のアセンブリ (共有アセンブリ) に分離します。DAL はサーバーでのみ使用されますが、エンティティはクライアントとサーバーで使用されます。

エンティティは、異なる層の間でデータを運ぶために純粋な DTO にすることも、ビジネス コンポーネントにするビジネス ロジック (データ検証、計算されたプロパティ、ビジネス オペレーションなど) を含めることもできます。そのため、ビジネス レイヤーが 2 つの層 (クライアントとサーバー) にまたがっており、エンティティがその一部であることがわかります。

于 2013-11-20T08:57:17.743 に答える
0

Your entity objects should definitely be part of the Data Layer since they dictate the database structure (when using a code first approach). From what you describe it seems like that video is referring to some kind of DTO (Data Transfer Object) or possibly something along the lines of a ViewModel.

于 2013-11-14T18:25:02.293 に答える