查询以获取全部而不是FirstOrDefault

时间:2018-10-05 16:36:27

标签: c# database

我需要遍历子树中的所有项目。 因此,我想将前任的所有childItem放入数组中。我尝试过:

var successors = 
    TabWebContext.MenuItemSet.Where(m => m.PredecessorId == parentId).ToArray();

我也尝试了不使用.ToArray()和使用.ToList()的情况。

我有以下循环:while (successors.Count()>0){...}(或更确切地说,.Length>0)。

条件从不成立。 您认为我做错了什么?我知道有元素(如果我做.FirstOrDefault(),至少发现一个元素。

2 个答案:

答案 0 :(得分:1)

为什么您认为它需要在数组中进行迭代?您可以像这样遍历列表:

foreach (var successor in TabWebContext.MenuItemSet.Where(m => m.PredecessorId == parentId))
{
   // do stuff with 'successor'
}

答案 1 :(得分:0)

仅举例说明如何使用where子句从数据源中全选。

int[] numbers = { 2, 34, 23, 11 }; //data source >> can be EF or ADO.NET
var result = numbers.Where(n => n <= 20).ToList(); // select all with filteration
foreach(int  i in result ) //just to loop and
{
  Console.WriteLine(i);
}

输出:

22
11

所以在var successors = TabWebContext.MenuItemSet.Where(m => m.PredecessorId == parentId).ToArray();

中看不到任何问题

如果您确实遇到错误,请在问题中加以说明。