Linq 如何从EntityCollection提取数据?
我有以下LINQ声明:Linq 如何从EntityCollection提取数据?,linq,entity-framework,Linq,Entity Framework,我有以下LINQ声明: var test = db.Employees.Include(Constants.EF_SecondaryTeamAllocationToApprovers) .Where(e => e.ApproverEmployeeId == SessionObjects.LoggedInUserId) .Select(e => e.SecondaryTeamAllocationToAppr
var test = db.Employees.Include(Constants.EF_SecondaryTeamAllocationToApprovers)
.Where(e => e.ApproverEmployeeId == SessionObjects.LoggedInUserId)
.Select(e => e.SecondaryTeamAllocationToApprovers);
这将返回一个IQueryable
对象
我不熟悉EntityCollection
集合。我发现我无法从该对象提取属性。例如,以下循环不起作用,我得到一个空值:
foreach (var item in test)
{
list.AddRange(item.Select(s => s.SecondaryTeamLeaderId));
}
我发现当我在控件内部钻取正确的数据时,我只需要提取它
那么我该如何解决这个问题呢
foreach (var item in test)
{
list.Add(item.SecondaryTeamLeaderId);
}
或
你有例外吗?我猜您可能希望通过附加.ToList()来具体化测试变量,以便从sql中提取项。没有异常。我在收藏中得到了一个项目——这是我所期望的,尽管我打算在以后测试很多项目。对于这一项,我无法获取SecondaryTeamLeaderId属性。并且const ef_SecondaryTeamAllocationToApprovers与employees上的导航道具完全相同?顺便问一下,第二团队领导者是谁?int还是ref类型?对于第一个问题,是的。这是一个常数,所以要避免拼写错误。SecondaryTeamLeaderId是一个int。
list.AddRange(test.ToArry());