Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.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# 如何处理ODataAPI的不同可能数据请求的好方法是什么?_C#_Odata - Fatal编程技术网

C# 如何处理ODataAPI的不同可能数据请求的好方法是什么?

C# 如何处理ODataAPI的不同可能数据请求的好方法是什么?,c#,odata,C#,Odata,我有一个具有一个实体和多个属性的ODataAPI。用户可以选择要从API检索的属性。如何最好地处理存在多个可能查询的情况?比如说,一个用户希望看到特定重量的物品,另一个特定高度的物品,还有另一个特定重量和高度的物品。不会显示他们没有明确要求的属性 简单而明显的解决方案是为每个可能的查询编写一个单独的查询。这真的是一个好方法吗?例如,如果要求重量 var data = context.MyEntity.Where(e => e.weight == userInputWeight); for

我有一个具有一个实体和多个属性的ODataAPI。用户可以选择要从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);
}
如果要求高度

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个可能的查询。

为什么数据的检索被视为表示层的一个关注点?为什么不检索所有6个属性,然后让表示层显示用户想要看到的内容?@Igor你说得对,我应该坚持检索所有属性。在控制台应用程序中,除了为每个查询编写一个单独的
控制台。WriteLine
之外,我还能在显示数据方面做些什么?