我有这样的查询,我希望将这两个查询联合起来。但是union条件是两个表必须具有相同列名的结果,因此必须检索GroupName,但在此Query中必须将其别名为Type1。
var vTLst = (from t in db.Types select t.Type1).Union
(from g in db.Groups select g.GroupName).ToList().Distinct();
请帮帮我......
答案 0 :(得分:0)
这是错误的,如果t.Type1
和g.GroupName
是列,并且您的查询应该使用相同类型。结果只是IQueryable<string>
或您拥有的任何列类型,没有带名称或任何内容的匿名类型。
如果您有更多列或匿名类型的更复杂查询,则可以使用列别名。
var vTLst = (from t in db.Types select new {Col1 = t.Type1, Col2 = t.Type2}).Union
(from g in db.Groups select new {Col1 = g.GroupName, Col2 = g.Col2})
.ToList().Distinct();
如果您的问题是列不是同一类型,您可以将它们转换为相同的类型
var vTLst = (from t in db.Types select t.Type1.ToString()).Union
(from g in db.Groups select g.GroupName.ToString()).ToList().Distinct();