2016-05-18 4 views
0

dbcontextを使用して異なるストアプロシージャを作成して実行し、尊重されたビューモデルで結果を取得しました。私はこれを一般化したい。私はスイッチの使用を避けるようにcontext.Database.SqlQuery <ダイナミックDYNAMICTYPE>でTElementを作りたいDBコンテキスト内のTElementの代わりに動的型を使用するC#

switch (report.StoreProcedure) 
{ 
    case "SP_BranchSaleReport": 
     result = context.Database.SqlQuery<BranchReportVM>("dbo.SP_BranchSaleReport").ToList(); 
     return PartialView("~/Views/Auto/Reports/InnerPartials/SP_BranchSaleReport.cshtml", result); 
} 

のようにやっています。私は反射を通してそれをすることができませんでした。どうすれば一般化し、行数を書くのを避けることができますか?

答えて

0
public static List<T> GetViewModelFromSp<T>(string ProcedureName, ApplicationDbContext context) 
{ 
    List<T> returnedList = new List<T>(); 

    returnedList = context.Database.SqlQuery<T>(ProcedureName).ToList<T>(); 

    return returnedList; 
} 
+0

GetViewModelFromSp タイプを選択する必要があります。この関数を呼び出す間、問題は同じですが、あなたはその上にラッパーを作成します。そうじゃない? @MuhammadBashir –

関連する問題