从OData Web Api中的函数返回相关实体

时间:2017-06-22 11:41:05

标签: c# entity-framework asp.net-web-api odata

我使用带有2个实体的ASP.NET Web API 2.2创建了一个OData v4端点:

enter image description here

我在我的控制器中创建了函数,它通过在LINQ中使用Include来返回具有相关实体的实体:

[HttpGet]  
  [ODataRoute("SalaryNaryadWork/TechOrder.Functions.GetNaryadSalaryWork(pNaryadID={pNaryadID})")]
public IHttpActionResult GetNaryadSalaryWork(int pNaryadID)
{
var tmp =_ctx.SALARY_NARYAD_WORK.Include(s => s.SALARY_WORK_LIST).Where(sw => sw.NARYAD_ID == pNaryadID).ToList();
return Ok(tmp);
}

功能配置代码是:

var GetNaryadSalaryWork = builder.EntityType<SALARY_NARYAD_WORK>().Collection.Function("GetNaryadSalaryWork");
GetNaryadSalaryWork.Parameter<int>("pNaryadID");
GetNaryadSalaryWork.ReturnsCollectionFromEntitySet<SALARY_NARYAD_WORK>("SalaryNaryadWork");
GetNaryadSalaryWorkList.Namespace = "TechOrder.Functions";

但是当我通过链接../SalaryNaryadWork/TechOrder.Functions.GetNaryadSalaryWork(pNaryadID=1)调用此函数时,我只得到没有相关实体的实体:

enter image description here

尽管函数返回相关的实体(我在visual studio中的调试函数中看到变量tmp

所以我的问题是,是否有可能在不使用Get()控制器功能的扩展选项的情况下通过函数来​​解决这个问题并获得相关实体?

0 个答案:

没有答案