C# linq 两个表,列名一样,但数据无关联,想合并为一个表

lex1715 2016-04-05 01:35:51
我有两个表<civ> ,<civCustom>里面的列名结构都是一样的,但是id等数据都是不一样,我想将这两个表合并为一个表,在页面上显示。我是将这两个表查询出后都放进各自的泛型集合里,但是就变成两个类型了,如何将这两个表合并成一个表呢?
或者用linq的话怎么写呢,这两表之间没什么关联,单纯只是想合并成一个表而已?求教
...全文
2829 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianlang_2008 2016-09-21
  • 打赏
  • 举报
回复
晕,实体不同还不能直接这样写,可以 var dt = (from a in l1 select new { a.Id, a.name }).AsEnumerable().Union(from b in l2 select new { b.Id, b.name });
tianlang_2008 2016-09-21
  • 打赏
  • 举报
回复
l1.AsEnumerable().Union(l2)
  • 打赏
  • 举报
回复
如果直接linqtoef不能用union的话,那分别取了后,到程序里再来转化合并呗
yws871218 2016-08-22
  • 打赏
  • 举报
回复
merge可以么
霜寒月冷 2016-04-25
  • 打赏
  • 举报
回复
---给你写了个例子 你可以参考下
void Main()
{
var a =GetList();
var b=GetListOne();
var query=(from a1 in a select new { Name= a1.Name,Age= a1.Age} ).Concat(from a3 in b select new {Name=a3.Name,Age=int.Parse(a3.Age)});
query.Dump();

}

public List<Person> GetList()
{
List<Person> list=new List<Person>()
{
new Person(){ Name="Olive",Sex="女",Age=22},
new Person(){ Name="Moyao",Sex="男",Age=23},
new Person(){ Name="Momo",Sex="女",Age=22},
new Person(){ Name="Only",Sex="女",Age=20},
new Person(){ Name="Love",Sex="女",Age=21},
new Person(){ Name="For",Sex="女",Age=22},
new Person(){ Name="Remote",Sex="男",Age=23},
new Person(){ Name="Snow",Sex="女",Age=23}
};
return list;
}
public List<PersonOne> GetListOne()
{
List<PersonOne> list=new List<PersonOne>()
{
new PersonOne(){ Name="Olive",Sex="女",Age="22"},
new PersonOne(){ Name="Moyao",Sex="男",Age="23"},
new PersonOne(){ Name="Momo",Sex="女",Age="22"},
new PersonOne(){ Name="Only",Sex="女",Age="20"},
new PersonOne(){ Name="Love",Sex="女",Age="21"},
new PersonOne(){ Name="For",Sex="女",Age="22"},
new PersonOne(){ Name="Remote",Sex="男",Age="23"},
new PersonOne(){ Name="Snow",Sex="女",Age="23"}
};
return list;
}
// Define other methods and classes here
public class Person
{
public string Name
{
get;
set;
}
public string Sex
{
get;
set;
}
public int Age
{
get;
set;
}
}
public class PersonOne
{
public string Name
{
get;
set;
}
public string Sex
{
get;
set;
}
public string Age
{
get;
set;
}

}


BitCoffee 2016-04-22
  • 打赏
  • 举报
回复

var q = ( from a in db.civ select a.Field).Union( from b in db.civCustom select b.Field);
Hertz_liu 2016-04-22
  • 打赏
  • 举报
回复

代码仅供参考,没有实际编译运行

//先创建一个映射类
public class QueryEntity
{
    public string id{get;set;}
    public string others{get;set;}
}

//然后使用union或union all
string strSql = "select id,others from civ union all select id,others from civcustom";

//查询
using(DbContext db = new DbContext())
{
    var source = db.ExecuteStoreQuery<QueryEntity>(strSql);
    gridview.DataSource = source;
    gridview.DataBind();
}
lex1715 2016-04-05
  • 打赏
  • 举报
回复
引用 2 楼 FoxDave 的回复:
sql里面有union
sql很少用都忘记了,现在后台用linq写,两个表union的话会报错,应该是因为表类型不一样。想请教用linq的话怎么查询两个表的合并为一个表呢?
Justin-Liu 2016-04-05
  • 打赏
  • 举报
回复
sql里面有union
lex1715 2016-04-05
  • 打赏
  • 举报
回复
只是想在查询时,将这两个表合并为一个表进行查询,并不想更改这两个表的数据

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧