EntityFramework4でn層アプリケーションの設計に問題があります。
サーバー側、私のアプリケーションには3つのレイヤーがあります:-1つのサービスレイヤー(WCF)-1つのビジネスレイヤー-1つのDataAccessレイヤー(EF4と連携)
エンティティはPOCOであり、独立したプロジェクト/アセンブリに配置されます。
ビジネスレイヤーとDataAccessレイヤーのオブジェクトを作成するために依存性注入を使用しているため、インターフェイスのみを操作し、ビジネスレイヤーのEFに依存していません。
パフォーマンスを向上させるためにEFコンパイル済みクエリを使用したいと思います。
しかし、私の(ビジネス)クエリはビジネスレイヤーで定義されています。私のアーキテクチャでは、DataAccessはCRUDメソッドのみを提供しているためです。
したがって、コンパイルされたクエリはビジネスレイヤーで定義する必要がありますが、EFに依存しておらず、結合を緩めたくないので、そこからObjectContextを呼び出すことはできません。
また、DataAccessでクエリを定義することは、私のアプリケーション設計に適合しません。
では、ビジネスクエリをビジネスレイヤーからDataAccessレイヤーに挿入して、コンパイル済みクエリで使用できるようにする一般的な方法があるかどうかを誰かが知っていますか?
私は多くのことを試し、どこを見ても、これに対する答えを見つけることができませんでした...:(EFはその種のn層アプリケーションにうまく適合しないようです。