Hi Folks,
I have a Stored Procedure that retrieves with dynamic column names the results from parameters with dynamic parameter names. In SSMS I see the correct result.
I have to expose this DataSet via Entity Framework in my OData Controller.
All I get is an HTTP 406 as result in my browser.
How can I get a dynamic stored procedure result in EF?
My code:
public virtual List<dynamic> GetVesselAppendages(int vesselId)
{
try
{
ModelEntities db = new ModelEntities();
var result = db.Database.SqlQuery<dynamic>("GetVesselAppendages @VesselID", new SqlParameter("@VesselID", vesselId)).ToList();
return result;
}
catch (Exception err)
{
Log.Instance.AddException(err);
}
return null;
}
MyController:
[EnableQuery]
[ODataRoute("GetVesselAppendages?VesselId={vesselId}")]
public List<dynamic> Get(int vesselId)
{
var xyz = db.GetVesselAppendages(vesselId);
return xyz;
}
If I call it via the browser, the breakpoint is hit. So I do call the right controller.
Which ObjectType should I use for the DbRawSqlQuery in EF?
How do I get this working with a HTTP-status of 200 in stead 406
What I have tried:
I have tried several returntypes like
DbRawSqlQuery<dbset>
DbRawSqlQuery<datatable>
DbRawSqlQuery<datarow>