首页 > 解决方案 > 如何处理 OData API 的不同可能数据请求的好方法是什么?

问题描述

我有一个具有一个实体和许多属性的 OData API。用户可以选择他想从 API 中检索哪些属性。如何最好地处理这种有多个可能查询的情况?比如说,一个用户想要查看特定重量的项目、特定高度的另一项目,以及特定重量和高度的另一项目。他们没有明确要求的属性将不会显示。

简单而明显的解决方案是为每个可能的查询编写单独的查询。这实际上是一个好方法吗?例如,如果要求重量

var data = context.MyEntity.Where(e => e.weight == userInputWeight);

foreach(var item in data)
{
  Console.WriteLine("item_name: " + item.name + " weight: " + item.weight);
}

如果要求高度

var data = context.MyEntity.Where(e => e.height == userInputHeight);

foreach(var item in data)
{
  Console.WriteLine("item_name: " + item.name + " height: " + item.height);
}

等等。能否以不同的方式完成,减少非常相似的代码的重复?我正在处理 6 个可能的查询。

标签: c#odata

解决方案


推荐阅读