创建DbSession对象:
public class DB { public static readonly DbSession Context = new DbSession("DosConn"); }
普通的Where条件写法:
//SQL语句:SELECT * FROM table WHERE name='ITdos' AND (id=1 OR sex='man') var list = DB.Context.From<table>() .Where(d => d.name == "ITdos" && (d.id == 1 || d.sex == 'man')) .ToList();
Like模糊查询:
//SQL语句:SELECT * FROM table WHERE name LIKE '%ITdos%' // AND name LIKE 'dos%' AND name LIKE '%IT' var list = DB.Context.From<table>() .Where(d => d.name.Like("ITdos") && d.name.StartsWith("dos") && d.name.EndsWith("IT")) .ToList();
In、Not In查询:
//SQL:SELECT * FROm table WHERE id IN(1,2,3) AND name NOT IN('dos','IT') var list = DB.Context.From<table>() .Where(d => d.id.In(1,2,3) && d.name.NotIn("dos","IT")) .ToList(); //也可以指定一个数据集做为条件 var listParam = new List<int>(); listParam.Add(1); listParam.Add(2); listParam.Add(3); var list = DB.Context.From<table>() .Where(d => d.id.In(listParam)) .ToList();
Where条件拼接使用Where类:
//sql语句:SELECT * FROM table WHERE name='ITdos' AND id=1 var where = new Where<table>(); where.And(d => d.name == "ITdos"); where.And(d => d.id == 1); var list = DB.Context.From<table>() .Where(where) .ToList();
多表条件拼接:
//SQL语句:SELECT * FROM table a // INNER JOIN table2 b ON a.id=b.aid // INNER JOIN table3 c ON a.id=c.aid // WHERE a.id=1 AND b.id=2 AND c.id=3 var where = new Where<table>(); where.And(a => a.id == 1); where.And<table2>((a,b) => b.id == 2); where.And<table3>((a,c) => c.id == 3); var list = DB.Context.From<table>() .InnerJoin<table2>((a,b) => a.id == b.aid) .InnerJoin<table3>((a,c) => a.id == c.aid) .Where(where) .ToList(); //上面的where还可以这样写: var where = new Where<table>(); where.And<table2,table3>((a,b,c) => a.id == 1 && b.id == 2 && c.id == 3);
文章链接:http://www.iTdos.com/CSharp/20150802/1213363.html
原创说明:转载IT大师原创文章时请保留原文链接,谢谢!
转载说明:本站转载文章均标明文章来源,若本篇转载侵犯了您的权益,请联系站长删除!
交流Q群:60831381
开源组件:Dos.ORM数据库组件