创建DbSession对象:
public class DB { public static readonly DbSession Context = new DbSession("DosConn"); }
多表联合查询:
//SQL语句:SELECT a.*,b.*,c.name FROM table a // INNER JOIN table2 b ON a.id=b.aid // LEFT JOIN table3 c ON a.id=c.aid var list = DB.Context.From<table>() .Select(table._.All, table2._.All, table3._.name) .InnerJoin<table2>((a,b) => a.id == b.aid) .LeftJoin<table3>((a,c) => a.id == c.aid) .ToList(); //由于返回的数据是List<table>数据,如果table实体类不包含table3的name字段 //那么将无法映射这些数据,所以需要为table扩展属性 //新建带有partial修饰的table扩展类,与table实体类在同一命名空间下: using Model; public partial class table { public string name { get; set;} //可以继续扩展table2中的字段 } //这样.ToList()返回的List<table>数据就包含table3.name的数据了。 //如果您觉得关联表太多,字段太多,扩展麻烦,可以直接返回.ToDataTable()。
方法对照表:
方法 | SQL |
.InnerJoin<T>() | inner join |
.LeftJoin<T>() | left join |
.RightJoin<T>() | right join |
.CrossJoin<T>() | cross join |
.FullJoin<T>(0 | full join |
文章链接:http://www.iTdos.com/CSharp/20150802/1227364.html
原创说明:转载IT大师原创文章时请保留原文链接,谢谢!
转载说明:本站转载文章均标明文章来源,若本篇转载侵犯了您的权益,请联系站长删除!
交流Q群:60831381
开源组件:Dos.ORM数据库组件