Entity Frameworkを介してデータベースからクエリされたオブジェクトを返すWCFサービスを作成する必要があります。私が読んだ記事のほとんどは、それぞれのタイプのクエリに対してメソッドを作成する必要があることを示しています。しかし、私は、これは例えば、私が作成する方法の数が爆発の原因となると思う:Entity Framework 4 LINQ to Entities WCFでのクエリ
- GetAllCars()
- GetCarsByBrand(文字列の新しい名称)
- GetCarsByYear(int型年)
- GetCarsByBrandAndYear(文字列の新しい名称、int型年)
- GetCarsByTireSize(tireSizeフロート)
- GetCarsByEngineType(文字列engineType)
- GetCarsByEngineSizeAndタイプ(文字列engineTypeをengineSizeフロート)
- GetCarsByEngineSizeBetween(upperEngineSizeフロート、lowerEngineSizeフロート)
- など。その上で
新しいクエリが必要な場合は、その後、私が作成する必要がありますそれを上回る新しい方法。
これを行うにはもっと一般的な方法が必要です。理想的なのは、クライアントがLINQを介して式ツリーを作成し、WCFを介して送信し、次にエンティティフレームワークを介してクエリを実行できるかどうかです。次に、すべてのクエリをサポートする1つの方法があります。
- QueryCars(式expression)
または文字列として式を送信します:たとえば
-
(文字列式)
がどのように開発者はこれを解決した
私は現在.NET 4.0で作業しています。これは単なる内部アプリなので、セキュリティは本当に懸念されていません。
これは私が探している答えのようです。好奇心のため、WCFデータサービスの前にこの問題がどのように解決されましたか? – Mas
これについて少しお読みになった後、これも遅延ロードをサポートするかどうかは不明です。遅延読み込みが自動的に処理されるかどうか知っていますか? – Mas
@Mas:それ以前は、ADO.NET Data ServicesやAstoriaと呼ばれていましたが、Linqは存在しません;) –