C# PathTemplate.StartsWith(“~/entityset”在ODataWebAPI路由中具体做什么
我搞不懂这段代码是干什么的C# PathTemplate.StartsWith(“~/entityset”在ODataWebAPI路由中具体做什么,c#,.net,asp.net-mvc,asp.net-web-api,odata,C#,.net,Asp.net Mvc,Asp.net Web Api,Odata,我搞不懂这段代码是干什么的 public override string SelectController(ODataPath odataPath, HttpRequestMessage request) { return odataPath != null && odataPath.PathTemplate.StartsWith("~/entityset", StringComp
public override string SelectController(ODataPath odataPath, HttpRequestMessage request)
{
return odataPath != null &&
odataPath.PathTemplate.StartsWith("~/entityset",
StringComparison.OrdinalIgnoreCase) ? "A" : null;
}
我知道语法含义,但是从(“~/entityset”
开始做什么
问题是~/entityset
。我没有关于这个实体集是什么以及从哪里获取的参考。我想它可能代表某个实体集,哪一个
检查URL是某种默认的OData机制吗?这用于确定OData内的路由。以下是一些示例URL及其路径模板,它们都以~/entityset开头 要找出它是哪个实体集,可以查看组成路径的线段
((EntitySetPathSegment)request.ODataProperties().Segments.First()).EntitySetName
Segments.First()不一定是EntitySetPathSegment,除非路径以~/entityset开头,所以请确保先进行检查。我将查看中间件上的OdataPath.PathTemplate配置。也可能是有人将“~/entityset”更改为“a”@Bart中间件?我正在使用EF创建模型,然后在路由中使用标准的SelectController和SelectAction函数。可能相关:查看Startup.cs和/或ODataConfiguration files.btw,这可能会有帮助:
"~/entityset/key"
"~/entityset/key/navigation"
((EntitySetPathSegment)request.ODataProperties().Segments.First()).EntitySetName