我有一个使用最新版本的RESTier网站。我使用EF6从数据库创建的所有实体和视图都工作得很好,但我似乎无法让我引入的存储过程工作。由于文档有点稀疏,我不确定除了服务的基本启动之外,我是否还需要实现任何其他东西。
当通过邮递员发送这个URI时,我得到一个404错误:http://192.168.1.20:60666/api/MIC_REST/up_BomAssemParts_s_ByJobID_FmNumber_WorkArea_TEST(jobID=252
我基本上有下面的服务的股票设置。无论是URI还是设置方面的帮助,我们都将不胜感激。
WebApiConfig
public static class WebApiConfig
{
public async static void Register(HttpConfiguration config)
{
config.EnableSystemDiagnosticsTracing();
config.Filter().Expand().Select().OrderBy().MaxTop(1000).Count();
await config.MapRestierRoute<EntityFrameworkApi<MICdB>>(
"MIC_REST", "api/MIC_REST", new Microsoft.Restier.Publishers.OData.Batch.RestierBatchHandler(GlobalConfiguration.DefaultServer));
}
}
public virtual ObjectResult<up_BomAssemParts_s_ByJobID_FmNumber_WorkArea_Result_TEST> up_BomAssemParts_s_ByJobID_FmNumber_WorkArea_TEST( Nullable<int> jobID, Nullable<int> fmNumber, string workAreas)
{
var jobIDParameter = jobID.HasValue ?
new ObjectParameter("JobID", jobID) :
new ObjectParameter("JobID", typeof(int));
var fmNumberParameter = fmNumber.HasValue ?
new ObjectParameter("FmNumber", fmNumber) :
new ObjectParameter("FmNumber", typeof(int));
var workAreasParameter = workAreas != null ?
new ObjectParameter("WorkAreas", workAreas) :
new ObjectParameter("WorkAreas", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<up_BomAssemParts_s_ByJobID_FmNumber_WorkArea_Result_TEST>("up_BomAssemParts_s_ByJobID_FmNumber_WorkArea_TEST", jobIDParameter, fmNumberParameter, workAreasParameter);
}
public partial class up_BomAssemParts_s_ByJobID_FmNumber_WorkArea_Result_TEST
{
public string BomAssemShipMark { get; set; }
public string CurrentLocation { get; set; }
public int Quantity { get; set; }
public string PlPiecemark { get; set; }
public string MatSizeText { get; set; }
public string LengthText { get; set; }
public string GradeDescription { get; set; }
public string PlPiecemarkPrefix { get; set; }
public int PlPiecemarkSuffix { get; set; }
public string PlCodes { get; set; }
public string PlPremark { get; set; }
public Nullable<int> FmNumber { get; set; }
}发布于 2017-02-09 03:49:50
在努力尝试让ODataController正常工作后,我放弃了,转而使用Apicontroller,它最终实现起来非常简单。使用ODataController时,我永远无法获得有效的URL,或者如果我尝试添加oDataRoute,总是会导致错误。似乎很荒谬的是,使用ResTier发布的所有相当无用的示例中,人们期望的一个现实世界的示例(返回用于UI视图的非实体数据列表的存储过程)似乎并不存在。ResTier似乎在EntitySets上工作得很好,但我发现自己陷入的这种混乱让我对它产生了疑问(或者说Odata不确定错误在哪里)。哦,好吧,下面让data...now找到一个按摩器来修复我额头上的伤痕……
[System.Web.Http.RoutePrefix("spapi/MIC_REST")]
public class SPController :ApiController
{
private MICdB db = new MICdB();
[System.Web.Http.Route("part/{jobID:int}/{fmNumber:int}/{workAreas}")]
// [EnableQuery]
public List<up_BomAssemParts_s_ByJobID_FmNumber_WorkArea_Result> GetPartsLists([FromODataUri]int jobID, [FromODataUri]int fmNumber, [FromODataUri]string workAreas)
{
return db.up_BomAssemParts_s_ByJobID_FmNumber_WorkArea_TEST(jobID, fmNumber, workAreas).ToList();
}
}https://stackoverflow.com/questions/42034081
复制相似问题