我使用EDM从DataBase View Table获取值 查询为IList类型。
它正在提供一些元素集合。
从这个系列中,我很喜欢 过滤基于One Column的数据但是没有给出 即使根据条件存在数据,也会过滤数据 查询如下所示。
对于获取数据表单数据库//它是 获取一些数据集。
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”类型的数据集合,但是如果我给出的话 类型显示为null。这是什么原因,这个数据是 取自数据库查看数据。
答案 0 :(得分:6)
此代码(重新格式化以避免滚动):
IList<EFModel.EntityModel.vwGetActiveEmployee> managerlist
= activeEmployeelist.Where(p => p.IsManager == 1)
.Select(p => p)
as IList<EFModel.EntityModel.vwGetActiveEmployee>;
...将总是将managerlist
作为null
,Select
在任何实施中都不会返回IList<T>
我我见过。我怀疑你想要:
IList<vwGetActiveEmployee> managerlist =
activeEmployeelist.Where(p => p.IsManager == 1)
.ToList();
请注意,除非您故意执行可能有效失败的引用类型转换(在这种情况下,您通常应该根据null
检查结果),否则您应该更喜欢使用强制转换而不是as
。如果你在这里使用了强制转换,你会立即看到异常,因为Select
返回的值不是你期望的类型。