繁体   English   中英

WebAPI 2.2-实体框架6-Odata v4查询问题和暗示

[英]WebAPI 2.2 - Entity Framework 6 - Odata v4 query problems and symantics

我正在尝试原型移动应用程序。 要求是一个Odata传递机制和一个现有的SQL数据库。 我使用Visual Studio构建了一个WebAPI 2.2 Web服务应用程序。 我安装了Entity Framework 6和Odata V4。 使它几乎完全起作用很简单。 我确实有一个问题...

我有一个基本的两个SQL表后端。 主表具有配置元素,辅助表具有每天从多个系统获取的数据。 辅助表具有一个主键,该主键由configid和日期降序组成。 这使表格可以自然地对最新的数据库进行优先排序(下面的基本架构)。

WebAPI服务运行良好,符合预期。 “ / odata / configs”,返回所有配置。 “ / odata / configs(1)”返回单个实体。 “ / odata / configs(1)/ detail”返回所有适当的详细记录,并具有最近的第一条记录。 我遇到的一个问题是分页数据所需的odata uri查询。 顶部,跳过等未返回正确的记录集...它们正在返回数据集的底部,就好像sql主键顺序没有意义...这很好奇吗?

我读过某处的内容,即分页可能需要表上的主键ID。 这个准确吗? 有人可以指出从哪里开始寻找有关此问题的文档或解决方案。 此外,对自定义数据集的任何深入了解,使用odata查询的存储过程处理等都将在不久的将来有所帮助。

主表:“ Config” configid:int主键名称:varchar(50)more ...辅助表:“ Detail” configid:int(链接到主)日期:日期时间数据:varchar(max)

提前致谢,

炖巴斯塔拉什

在这里查看OData教程: http ://www.odata.org/getting-started/basic-tutorial/

通过组合有序的top和skip子句,您应该能够实现分页。

谢谢您的回应...实际上我确实以这种方式找到了解决方案。 我很好奇,当对SQL表进行本地索引时,您会认为标准结果将是降序排列。 表的主键是链接索引和日期的组合,日期是降序的。 使用所有记录(即http:// localhost / odata / configs(n)/ details)调用表的结果将按预期返回所有记录...以降序排列...但是,调用top时,跳过分页将返回尽管有SQL主键,但还是要放在表格底部

很好奇!

炖巴斯塔拉什

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM