如何在第二个linq查询中使用第一个linq查询

时间:2017-09-17 05:15:13

标签: c# linq

如何在第二个linq查询中使用第一个查询的结果。我尝试使用可查询但不起作用。

我收到此错误

  

int'不包含'contains'的定义,也没有扩展名   方法'包含'接受'int'类型的第一个参数可能是   结果

var query = _FirstDAL.GetList(db =>
                            from r in db.Set<Employee>() select r);

var query2 = _SecondDAL.GetList(db =>
                    from r in query.AsQueryable()
                    join e in db.Set<EmployeeType>() on r.EmployeeId = e.EmployeeId
                    select  r.EmployeeName);

此处获取列表的方法说明

 public List<TResult> GetList<TResult>(Func<ISetProvider, IQueryable<TResult>> queryProvider)

我试过的是这个

 var query2 = _SecondDAL.GetList(db =>
                        from r in query.AsQueryable()
                        join e in db.Set<EmployeeType>() on r.EmployeeId = e.EmployeeId
                        where query.Any(p=>p.Equals(r.EmployeeId))
                        select  r.EmployeeName);

这是对的吗?但是我收到了这个错误

Unable to cast the type 'System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' to type 'System.Object'. LINQ to Entities only supports casting EDM primitive or enumeration types."}

0 个答案:

没有答案