ASP.NET 5、Webプロジェクトからエンティティフレームワークを分離したい

asp.net-core asp.net-core-mvc entity-framework-core

質問

私は以下のアプリケーション構造を達成しようとしています

App.Model - UserModel - OrderModel

App.Service - UserService - IUserService

App.Entity - DbContext

ウェブサイト - WebAPI - サービスを呼び出す

ほとんどのASP.NET 5アプリケーションの例では、Webサイトの起動ファイル内のエンティティフレームワークを初期化します。 .AddEntityFrameowrk()..などのように

Entityを別のプロジェクトに分割する方法と、Serviceプロジェクトからリポジトリを呼び出す場合はDBContextをどのように起動するのかを知る必要があります(起動ファイルはクラスライブラリでは使用できないため)

人気のある回答

以前のプロジェクトでは、1つのソリューション(または複数のソリューション)で複数のASP.NETプロジェクトを管理するアプローチを採用しました。これにより、WebアプリケーションからEF依存関係を削除し、WebアプリケーションですべてのEFを処理するAPIのみと対話できるようになります

これまでは、すべてのモデルを含み、WebアプリケーションとAPIプロジェクトの両方で参照できる専用の「ドメイン」プロジェクトを作成しました。

プロジェクトの構造は次のようになります

ドメインプロジェクト:モデルを表すc#クラスのみが含まれます。 「空の」プロジェクトから始めよう

API:ウェブAPIが含まれています。 EFを使用してデータベースと対話します。私はあなたのモデルのAPIを個人的に足場にしますが、それは個人的な選択です。今、ASP.NETのコア1.0 RC1では、Web APIのテンプレートが貧弱なので、完全な 'Webアプリケーション'から始めて、すべてのデフォルトのビュー、コントローラ、スクリプトなどを削除します。モデルからAPIコントローラを足場に乗せて

Webアプリケーション:主なWebアプリケーションプロジェクト。 「Webアプリケーション」テンプレートから始めますが、コントローラのHttpClientを使用して、データのやりとりにapiを使用します。過去に私はこのタスクを簡単にするために静的な 'apiヘルパークラス'のセットを作成しましたが、それは再び個人的なスタイルの選択です。受信したJSON応答を完全な.netモデルに変換できるように、ドメインプロジェクトを参照します。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow