1

我使用 EDM 查询作为 IList 类型从数据库视图表中获取值。

它提供了一些元素集合。

从这个集合中,我试图根据一列过滤数据,但即使数据是基于条件存在的,也没有给出过滤后的数据查询如下所示。

对于从数据库获取数据 // 它正在获取一些数据集合。

IList<EFModel.EntityModel.vwGetActiveEmployee> activeEmployeelist = TimeOffService.GetActiveEmployees();

在这里,我想根据 Column IsManger(值 1 或 0)过滤数据

IList<EFModel.EntityModel.vwGetActiveEmployee> managerlist = activeEmployeelist.Where(p => p.IsManager == 1).Select(p => p) as IList<EFModel.EntityModel.vwGetActiveEmployee>;

但这里的 Managerlist 显示空值。当我使用以下过滤数据时

 var emplistVar = activeEmployeelist.Where(p => p.IsManager.Equals(1)).Select(p => p);

它显示了一些具有“var”类型的数据集合,但是如果我给 Class 类型它显示为 null。这是什么原因,这个数据取自数据库View Data。

4

1 回答 1

6

此代码(重新格式化以避免滚动):

IList<EFModel.EntityModel.vwGetActiveEmployee> managerlist 
     = activeEmployeelist.Where(p => p.IsManager == 1)
                         .Select(p => p)
       as IList<EFModel.EntityModel.vwGetActiveEmployee>;

... 将始终作为managerlista null,因为在我见过的任何实现中Select都不会返回 a 。IList<T>我怀疑你想要:

IList<vwGetActiveEmployee> managerlist =
    activeEmployeelist.Where(p => p.IsManager == 1)
                      .ToList();

请注意,除非您故意执行可能有效失败的引用类型转换(在这种情况下,您通常应该检查结果null),否则您应该更喜欢强制转换而不是as. 如果您在这里使用了强制转换,您会立即看到异常,因为返回的值Select不是您期望的类型。

于 2013-06-24T15:06:03.110 回答