Ich versuche, einen Controller zu erstellen, der Stored Procedure-Ergebnisse ohne Spaltendefinition wie ohne Modell erhalten konnte.Erstellen einer dynamischen Modellklasse mit einer Schleife
Ich denke, wenn ich die Spaltennamen bekommen kann, kann ich ein Modell dafür erstellen und gespeicherte Prozedur mit einem Modell aufrufen. Aber ich konnte kein Modell mit Looping erstellen. Gibt es eine Möglichkeit, ein Modell mit dieser Idee zu erstellen?
Oder haben Sie eine Idee, Ergebnis ohne Modell aus gespeicherter Prozedur zu erhalten?
Ich benutze oData-Bibliothek, so wäre es toll, wenn es das tun kann.
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
}
}
}
eigentlich denke ich etwas falsch verstanden wird. Ich habe ReturnValues, wie Sie in Code als Rückgabewert sehen. Ich muss es an eine Modellklasse unten senden, und ich muss neue MODEL-Struktur erstellen; so etwas wie [Spalte ("COLUMN1")] public int COLUMN1 {get; einstellen; } [Spalte ("COLUMN2")] öffentliche Zeichenfolge COLUMN2 {get; einstellen; } So konnte ich es nicht zur Klasse senden und ein Modell wie oben erstellen ... –
Sie möchten Klasse aus resultierenden Daten dynamisch erstellen? –
ja Sie haben Recht –