并集查询

实体方式

使用实体类方式,要保证生成的Select中的列要一致,用Select一定要 new Class或者 ((object)new {}写法 保证返回类型是引用类型

 var q1 = db.Queryable<Student>().Select(it=>new Model{ name=it.Name });
 var q2 = db.Queryable<School>().Select(it => new Model { name = it.Name });
 var list = db.UnionAll(q1, q2).ToList();

生成的Sql如下:

 
SELECT * FROM  (SELECT  [Name] AS [name]  FROM [STudent]  UNION ALL
SELECT  [Name] AS [name]  FROM [School] ) unionTable


匿名对象方式

要加一个object的转换

var q1=db.Queryable<Order>().Select(it => (object)new { id=it.Id });
var q2 = db.Queryable<Order>().Select(it =>(object) new { id = it.Id });
db.Union(q1, q2).Select<Order>();


MySql Limit Union all

升级最新

文档:SqlSugar5.0