原创

Dos.ORM使用方法 - Where条件查询

 170283  2015/02/23 07:57:33

car_5

创建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);