2017-01-25 1 views
0

私はEntity FrameworkをSQLデータベース上のデータ抽象化レイヤーとして使用しましたが、代わりにLINQのようなものを使用してSQLクエリを書く必要はありません。そして、EFはそれをすべてSQLに変換し、データベースに自動的に接続します。それはモデルを与えられたデータを管理する非常に簡単な方法です。WebサービスからデータにアクセスするためにEntity Frameworkを使用しますか?

今、私はRESTクライアントを作っていますが、私もEFを使ってそれにアクセスすることを考えています。

SQLデータベースではなく、REST APIに接続するにはどうすればよいですか?グーグルエンティティフレームワークと一緒にREST サーバーデータベースにアクセスするためにEFを使用する方法を教えてくれました。私はクライアント側でEFを使用して、Webサーバーにアクセスして、データにアクセスします。

私はmodel.Users.Where(...)とGET/api/users?filter ... HTTPリクエスト(古典的なSELECT * FROMユーザーWHERE ... SQLクエリ)。

私は通常と同じように「ADO.NETエンティティデータモデル」を作成しようとしましたが、すべてのオプションで接続文字列を指定する必要があります。これはデータベースにのみ適用されます。 SQL接続文字列ではなく、APIエンドポイントが必要です。

AFAIK EFは、(自動的に作成され、データベースに接続された)「DataSet」オブジェクトに接続しますが、再度REST APIを使用する方法はわかりません。 DataSetを実装する独自のクラスを作成する必要がありますが、何とかEFでそれを使用しますか?私がDataSetについて見たことも、文字通りSQLデータベースを暗示しているようです。 Grrr。

このような簡単な質問で長い間申し訳ありません。誰か知っている人Entity Frameworkでデータベースの代わりにRESTサービスを使用する方法?それはとても簡単なはずです。結局のところ、Microsoftはデータアクセス抽象レイヤーと呼んでいます。いいえデータベースへのアクセス

+0

適切なツールを使用してください。 @IlyaKoroverと同様に、EFはORMフレームワークです。このようなことを実現したい場合は、独自のラッパーを作成する必要があります。 –

答えて

1

私はあなたに最も良いスタートは、ASP.NET Web APIによってすぐにサポートされているOData protocolを見ることです。 that linkをチェックして、役立つ良いチュートリアルを確認してください。

+0

あなたがリンクしたODataプロトコルはEntityFrameworkと何の関係もありません。 Entiry Frameworkはデータベースのみをサポートしますか?それはまさにマイクロソフトがそれについて言わなかったことだからです。彼らはそれが一般的なデータアクセス抽象であると言いました。データベースは一般的ではなく、特別なケースです。 – Dexter

+0

ああ。あなたは私に間違った情報をくれました。 ODataは、ASP.NET Webアプリケーションを作成するためのものです。つまり、SERVER側で使用されています。私の場合、Webサーバー/ REST APIは.NETで記述されていないこともあります。 Webサーバーはデータベースに接続するだけで、WebサービスにアクセスするにはCLIENT側(PC用のWPFアプリケーション)にEFが必要です(前述のWebサーバーに接続する)。 – Dexter

+0

私はあなたの意見を持っていると思いますが、わからないのですが、なぜその場合にORM(https://en.wikipedia.org/wiki/Object-relational_mapping)が必要ですか?実際、EFはORMフレームワークです。 –

関連する問題