5

だから私たちはアプリケーションを構築しています

  • UI レイヤー (Web、モバイル、Ajax クライアントなど)
  • サービス/API レイヤー
  • ビジネスロジックレイヤー
  • データ アクセス層

私たちの目標は、サービス層から DAL までの Entity Framework 依存関係を持つことです。つまり、サービス レイヤーは POCO (プレーンな古い CLR オブジェクト) のみを受け入れて返します。

私たちが現在行っていることは、POCO を EF エンティティに、またはその逆に変換するサービス層とビジネス ロジック層の間のマッピング層を手動でコーディングすることです。

つまり、ページにはフォームがあり、フォームには分離コードがあり、フォームのコンテンツを受け取り、POCO に詰め込み、サービス層に送信します。サービス レイヤーは EF エンティティに変換し、それをビジネス ロジック レイヤーに送信します。ビジネス ロジック レイヤーはエンティティに対して特定の変換を実行し、DAL とやり取りして永続化します。

はい、少し面倒ですが、もっと良い方法はないかと考えていました。

はい、誰かが EF Poco Adapter を公開したことは知っていますが、それはすべて C# で書かれており、VB.NET ソリューションを使用したいと考えています。

はい、NHibernate への切り替えは最後の手段です。すでに開発サイクルが進んでいるためです。

4

2 に答える 2

2

POCO でビジネス ロジックを実行する必要があります。ORM の全体的な目的は、それが実装の詳細であることです。ビジネス ロジックは、ドメイン モデルとドメイン サービスに実装する必要があります。ビジネス アプリケーションでは、「ドメイン」は「ビジネス」を意味します。DAL は、POCO を取得して永続化するために存在する必要があります。この場合、それは、EF エンティティにマッピングして永続化することを意味します。

いずれにせよ、それは理論上の / NHibernate モデルです。

于 2008-10-11T00:16:45.750 に答える
1

EFインターフェイスのサービス レイヤーに依存することに耐えられますか? IPOCO を実装できます。

自動的に行う方法もあります。

于 2008-10-15T15:19:24.070 に答える