Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将OData查询转换为DataContract模型类_C#_Entity Framework_Asp.net Web Api - Fatal编程技术网

C# 将OData查询转换为DataContract模型类

C# 将OData查询转换为DataContract模型类,c#,entity-framework,asp.net-web-api,C#,Entity Framework,Asp.net Web Api,我有一个n层应用程序。我已经在后端的内部类型和在前端的webApi中公开的内部类型之间解耦了模型 我正在尝试使用ODataQueryOptions在前端使用查询,我面临的问题是前端不知道我的模型的属性。是否有一种通用方法可以将webApi中公开的前端名称转换为ODataQueryOptions需要的内部属性名称 i、 我可以用这个代码从查询中获取属性名 ODataQueryOptions<MyModel> queryString; if (queryString.OrderBy

我有一个n层应用程序。我已经在后端的内部类型和在前端的webApi中公开的内部类型之间解耦了模型

我正在尝试使用ODataQueryOptions在前端使用查询,我面临的问题是前端不知道我的模型的属性。是否有一种通用方法可以将webApi中公开的前端名称转换为ODataQueryOptions需要的内部属性名称

i、 我可以用这个代码从查询中获取属性名

 ODataQueryOptions<MyModel> queryString;
 if (queryString.OrderBy != null && queryString.OrderBy.OrderByClause != null)
 {
     foreach (OrderByNode node in queryString.OrderBy.OrderByNodes)
     {
         OrderByPropertyNode typedNode = node as OrderByPropertyNode;
     }
 }
但现在我必须使用大写字母,因为它与后端相耦合

http://localhost:8888/jobs?$orderby=Name desc

我必须手动编写属性之间的转换吗?还是有办法实现这一点?

您使用的是System.Web.Http.OData还是System.Web.OData? 如果您使用System.Web.OData,您已经实现了名称别名,并且您可以不费吹灰之力地做任何事情

 http://localhost:8888/myModel?$orderby=name desc
http://localhost:8888/jobs?$orderby=Name desc