アプリケーションに OData インターフェイスを提供したいと考えています。私が見た例では、EF を使用して LINQ クエリを SQL クエリにマップしています。
私見ですが、このアプローチは物理データベース モデルを世界に公開します (EF/NH がある程度の柔軟性を提供することは知っていますが、制限があります)。
私ができるようにしたいのは、次のとおりです。
- いくつかの DTO を介してデータ コントラクトを定義します。
- ユーザーがデータ コントラクト Dtos に対してクエリを実行できるようにする OData サービスを用意します。
- DTO を介したクエリを、たとえば EF モデルまたは NH を介したクエリに変換するための変換レイヤーを用意します。
- 翻訳されたクエリを実行します。
- 結果をデータ コントラクトにマップします。
私は気が狂っていますか、それともこの問題の解決策はありますか?