2017-02-02 4 views
0

.NETCOREでRepositoryパターンを使用していて、HttpGetリクエストからデータを返そうとしています。私が元に戻したいデータは、SQLの複数の関連していないテーブルからのものです。私は、それぞれのリポジトリからデータを取得し、すべてのデータを含むオブジェクトを返すことができるように頭を抱えています。私はこれが意味をなさないことを願っています。私は立ち往生して "Unit of Work"を立ち上げましたが、好きなことをする良い例は見つけられません。前もって感謝します。HttpGetの複数のリポジトリC#

+0

エンティティリポジトリを使用して、コントローラメソッドにデータを持ち込んだ後、ビューモデルに結合して戻ることができます。 –

+0

Ahh viewmodel、私はオブジェクトを作成し、そのオブジェクトのプロパティに各値を割り当てようとしていました。ありがとう、私はそのショットを与えるよ! –

答えて

2

ステップ1.各テーブル/ビューまたはSQLデータベースから取得したデータセットのモデルクラス(ドメインモデルレイヤー)を作成します。以下に示す:SQLデータベース呼び出します

public class DataFromTable1 
{ 
     // properties mapped with the sql table columns 
} 

public class DataFromTable2 
{ 
    // properties mapped with the sql table columns 
} 

public class DataFromTable3 
{ 
    // properties mapped with the sql table columns 
} 

ステップ2書き込みデータアクセスクラス(ストアドプロシージャまたは直接のSQLStatementを - 私もネットから直接テーブルへのアクセスをお勧めしません)あなたのモデルクラスを移入しますこのステップでは、任意のリポジトリ・パターンを使用できます。

ステップ3.モデルクラスをプロパティでラップし、手順2でデータアクセスクラス作成を呼び出すことで水分を吸収するビューモデルクラスを作成します。通常、ビューモデルクラスはMVCプロジェクトで作成されます。

public class MyViewModelClass 
{ 
    public DataFromTable1 DataFromTable1 { get; set; } 
    public DataFromTable2 DataFromTable2 { get; set; } 
    public DataFromTable3 DataFromTable3 { get; set; } 
} 

ステップ4ビューのデータを表示するには、このビューモデルを使用してください。

これが役に立ちます。

+0

どうすれば私は新しい "myviewmodelclass"を基本的にインストールするのですか?これはhttpリクエストに応答して、角度のフロントエンドがデータを返すようになります –

+2

コントローラアクションでmyviewmodelclassを新しくできます。データアクセスレイヤーの対応するデータ型でプロパティを設定し、myviewmodelclassオブジェクトを返します。そのjson結果が必要な場合はreturn Json(myviewmodelclass、JsonRequestBehavior.AllowGet)を使用します。 –

+0

これは私がこれまで見た中で最高のもののように聞こえる。私はこれを打ち明けて報告する。あなたの時間をありがとう! –

関連する問題