拉姆达支持的函数用法

支持的函数写法:

//转换  支持objToXX ConvertToXX 和 ToString
var r1 = db.Queryable<Student>().Where(it => it.name == par1.ObjToString()).ToList(); //ObjToString会将null转转成""

var r2 = db.Queryable<InsertTest>().Where(it => it.d1 == par1.ObjToDate()).ToList();

var r3 = db.Queryable<InsertTest>().Where(it => it.id == 1.ObjToInt()).ToList();//ObjToInt会将null转转成0

var r4 = db.Queryable<InsertTest>().Where(it => it.id == 2.ObjToDecimal()).ToList();

var r5 = db.Queryable<InsertTest>().Where(it => it.id == 3.ObjToMoney()).ToList();

var convert1 = db.Queryable<Student>().Where(c => c.name == "a".ToString()).ToList();

var convert2 = db.Queryable<Student>().Where(c => c.id == Convert.ToInt32("1")).ToList();

var convert3= db.Queryable<Student>().Where(c => DateTime.Now > Convert.ToDateTime("2015-1-1")).ToList();

//去空格
var r6 = db.Queryable<InsertTest>().Where(it => it.v1 == par2.Trim()).ToList();

//转大小写
var convert3 = db.Queryable<Student>().Where(c => c.name == par2.ToLower()).ToList();

var convert4 = db.Queryable<Student>().Where(c => c.name == par2.ToUpper()).ToList();

//模糊查询
var c1 = db.Queryable<Student>().Where(c => c.name.Contains("a")).ToList();

var c2 = db.Queryable<Student>().Where(c => c.name.StartsWith("a")).ToList();

var c3 = db.Queryable<Student>().Where(c => c.name.EndsWith("a")).ToList();

//判段是否为空或者null
var c4 = db.Queryable<Student>().Where(c => !string.IsNullOrEmpty(c.name)).ToList();

//等于
var c5 = db.Queryable<Student>().Where(c => c.name.Equals("小杰")).ToList();

//长度判段
var c6 = db.Queryable<Student>().Where(c => c.name.Length > 4).ToList();

//时间
var time = db.Queryable<InsertTest>().Where(c => c.d1>DateTime.Now.AddDays(1)).ToList();

var time2 = db.Queryable<InsertTest>().Where(c => c.d1 > DateTime.Now.AddYears(1)).ToList();

var time3 = db.Queryable<InsertTest>().Where(c => c.d1 > DateTime.Now.AddMonths(1)).ToList();


不支持的一些函数请将变量提取到外面在传进表达式如下:

string par1 = "asdfsa".Replace("aa","");
var list= db.Queryable<Student>().Where(it => it.name == par1).ToList();


复杂的条件可以使用字符串来实现

var list = db.Queryable<InsertTest>().Where("id=@id and name=@name", new { id=1,name=xxx}).ToList();


收藏到朋友圈: