より大きいシステムの一部であるWCFサービスを開発中です。サービスはビジネスロジックを提供し、Entity Framework(モデルファーストを使用)を介してデータベースに接続されます。 Entity FrameworkをWCFサービス(基本エンティティ、DTO、自己追跡エンティティ、POCOなど)と連携させる方法はさまざまです。私の基本的な要件:WCFサービスとEntity Frameworkのnティアアプリケーションの問題
- サービスは、シンクライアント(および他のサービス)のために構築され、ロジックのほとんどは、その側にあるので、それは任意のCRUDアプリではありません(WCF Data Servicesのは私のためではありません)
- データベース内の同じエンティティのための私の要求にそれが構築されるべきか、私のビジョンは、(私はそれが一番近いと思うに最も近い別のデータコントラクト
が存在しますので、異なるクライアントは、粒度の異なるレベルでデータを必要としますDTOアプローチへ): http://www.codeproject.com/Articles/127395/Implementing-a-WCF-Service-with-Entity-Framework
しかし、私は、データアクセス層はサービスのロジック(2つのアセンブリ:プロジェクト、名前空間、dll、しかし1つのアプリケーションとして動作する)から分離されるべきだと思います。この場合、私はいくつかの問題があります。これらの2つの層のそれぞれは何をすべきですか?サービス内ですべてのロジックを実行し、DALをCRUDと同じように使用する必要がありますか?または、データベース全体のロジック(linqを使用した特定のクエリ)はDAL(DALによって公開されるより多くの特定のメソッド)で実行されますが、サービスは明確なビジネスロジックのみを担当する必要がありますか?また、データコントラクト、エンティティ、または追加モデルの2つのレイヤーの間で、どのオブジェクトを送信すべきか重要なのは何ですか?
上記の状況で私のアプローチはOKですか?