我喜欢使用linq在3个表上进行联合。 不确定为什么类似以下的东西不起作用:
var repdata = (from p in db.Table1
select p)
.Union(from p in Table2
select p);
答案 0 :(得分:11)
Union
仅适用于相同的元素类型。你可以使用:
var data = db.Table1.Select(p => new { p.Value1, p.Value2 })
.Union(db.Table2.Select(q => new { q.Value1, q.Value2 })
.Union(db.Table3.Select(r => new { Value1 = r.Alias1, Value2 = r.Other });
此处,匿名类型用作将所有三个表投影到的常用类型,以便Union
可以正常工作。