结合两个IEnumerable和IQueryable列表

时间:2013-05-30 00:40:20

标签: c# linq entity-framework

您好我有两个表tabl1和table2。我正在尝试搜索每个表的某个日期,一旦我得到列表c1和c2然后我需要得到两者的联合,所以我有一个不同的列表,没有使用实体框架的重复行。

  ssEntities sss = new ssEntities();
  var c1 = sss.table1.ToList().Where(x => x.date >= DateTime.Today);
  var c2=sss.table2.ToList().Where(x=>x.date1 DateTime.Today);
  var ll=c1.Union(c2).ToList();

当我尝试将两个列表合并时,我得到下面的错误

Instance argument: cannot convert from 
'System.Collections.Generic.IEnumerable<testproject.table1>' to   'System.Linq.IQueryable<testproject.table2>'

请帮忙。

1 个答案:

答案 0 :(得分:3)

这很容易

ssEntities sss = new ssEntities();
  var c1 = sss.table1.ToList().Where(x => x.date >= DateTime.Today)
                            .Select(x => new { x.Prop1, x.Prop2 });
  var c2 = sss.table2.ToList().Where(x => x.date1 >= DateTime.Today)
                            .Select(x => new { x.Prop1, x.Prop2 });
  var ll = c1.Union(c2).ToList();

你必须只从每个表中选择你想要的属性,它们必须是相同的,这样联合才能起作用,你不能在两种不同的类型上做联盟。