私はこれを正しく語る方法さえもよく分かりませんが、ここにはあります。データベース接続とデータサービス参照からのADO.Netエンティティを組み合わせたLinqクエリ?
私は2つの.netウェブアプリケーションを持っています。 1つは、多数のエンティティセット(「DEPT_Entities」)へのアクセスを提供するWCFデータサービス(「DEPT_DataService」)を提供する。もう1つは、Webインターフェイスを提供するMVC2アプリケーションで、ローカルのMSSQLデータベースによってバックアップされる独自のADO.netエンティティもあります。説明するために過度に基本的な構造を使用して
:
のは、WCFデータサービスアプリケーションがローカルSQLデータベースに「部門」テーブルに裏打ちされた単一のエンティティセット、「部門」を、含まれて言ってみましょう。これには、その部門の主要連絡先の従業員IDとともに、会社内のすべての部門のリストが含まれています。
MVC2アプリケーションには、名前と従業員IDを含む多数の人物のリストを含む単一のエンティティセット「従業員」が含まれているとします。
私は、DEPT_EntitiesをMVC2アプリケーションにサービスリファレンス "DEPT"として追加しました。オブジェクトブラウザでそのサービス参照を見ると、 "DEPT_Entities"と "Departments"が表示されます。私が何をしたいか
はこのような何かを参照するために、LINQのを経由して、私を可能にする関係を定義している:
Employee firstEmployee = db.Employees.First();
Department[] firstEmployeesDepts = firstEmployee.Departments.toList();
...つまり、私は基本的にA提供してナビゲーションプロパティをしたいですローカルデータベースにあるEmployeeエンティティとリモートデータサービスで検出されたDepartmentエンティティの間に1対多の関係があります。
これは実行可能ですか?どうやって?
ありがとうございます!
アドバイスありがとうございます。 Webサービスを使用していることを隠すことは望ましくありません。何を望みますか?設定することは、ローカル・テーブルとWebサービスによって提供されるデータの間の「結合」に似たものを実行することは自明です。 。それを行うためのスマートな方法はありますか? – DanM
残念ながら、私の経験は、あなたもそうしたくないということです。データアクセスを明示的に行う場合は、おそらく最適です。データアクセスにはパフォーマンス上の影響があり、失敗する可能性があります。コーディング中にそれを認識することは良いことです。 – usr
一般的な選択n + 1問題は、開発者がデータアクセスを抽象化しようとするときに最も頻繁に発生します。それはちょうどそのように動作しません。 – usr