モデルなしのようにカラム定義を使用せずにストアドプロシージャの結果を取得できるコントローラを作成しようとしています。ループを使用した動的モデルクラスの作成
私は列名を取得できたら、そのモデルを作成し、モデルを使ってストアドプロシージャを呼び出すことができます。しかし、ループでモデルを作成することはできませんでした。その考え方でモデルを作成する方法はありますか?
または、ストアドプロシージャからモデルなしで結果セットを取得する考えですか?
私はoDataライブラリを使用していますので、それが可能なら素晴らしいでしょう。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http.OData;
namespace WebService.Controllers.OData.Common
{
public class CallSPWithoutColumnDefinitionController : ODataController
{
private SitContextTuborg db = new SitContextTuborg();
[EnableQuery]
//[SITAuthorize]
public IQueryable<CallSPWithoutColumnDefinitionModel> GetCallSPWithoutColumnDefinition()
{
Dictionary<string, string> parameterValues = new Dictionary<string, string>();
List<CallSPWithoutColumnDefinitionModel> ReturnValues = new List<CallSPWithoutColumnDefinitionModel>();
parameterValues.Add("STR_CO_NAME", "Pages");
var Results = db.ExecuteProcedureWithAuth<CallSPWithoutColumnDefinitionModel>("[Load-Co-Confıg.R01]", this.Request.GetClientIp(), parameterValues).ToList();
foreach (CallSPWithoutColumnDefinitionModel item in Results)
{
ReturnValues.Add(new CallSPWithoutColumnDefinitionModel()
{
LNG_ID = item.LNG_ID,
STR_COLL_NAME = item.STR_COLL_NAME,
STR_TYPE = item.STR_TYPE
});
}
return ReturnValues.AsQueryable();
}
public class tmpCallSPWithoutColumnDefinitionModel
{
//we need to create model with a for loop with Returnvalues' coll names above
}
}
}
実際に私は何かが誤解だと思います。戻り値としてコードに見られるようにReturnValuesがあります。私はそれを下のモデルクラスに送信する必要があり、新しいMODEL構造を作成する必要があります。 のようなもの [列( "COLUMN1")] public int COLUMN1 {get;セット; } [列( "COLUMN2")] 公開ストリングCOLUMN2 {get;セット; } 私はそれをクラスに送信して上記のようなモデルを作成できませんでした... –
結果のデータからクラスを動的に作成したいですか? –
はいいいえ –