赞
踩
MySqlSugar 1.5 API
一、介简
SqlSugar ORM框架一直在升级当中,昨天将EMIT架构进行了重构,让类型转换更加智能,EMIT转换后的性能和原生ADO同水准(以前只是接近),为了提高性能、稳定、有问必答、有需求必改、坚持更新。例如数据库类型为BIT我们在程序里面可以使用 INT接收也可以用BOOL接收,不影响一丝性能,这些都是SQLSUGAR以前没有的功能。
经过一天的努力,MySql版本所有的例子都已经测试通过:
MySql .NET 4.0+
MySql .NET CORE
下周更新
MSQL .NET 4.0+下载地址:
MSSQL .NET Core版本
优点:
1、优越的性能,查询使用 reflection.emit 创建IL语言+委托绑定 然后对该对象进行 cache ,datareader直接赋值给cache对象,高性能拉姆达解析,查询速度达到原生最高性能的写法水准
2、大量语法糖,拉姆达表达示筛选,新颖的多表查询 ,方便的分页等
3、支持事务
4、内置实体类生成函数,无需使用第三方代码生成器
5、简单好用、例子齐全有问必答。
组成:
sqlSugar是由sqlSugarClient提供统一调用模式 ,sqlSugarClient是由5个部分组成
1、自身函数
2、实体生成
3、单表查询
4、多表查询
5、基类函数
MySql教程
和MSSQL版本基本一样但是个别例子也会有些细节上的区别
一、查询
1、拉姆达查询(以后会支持多表JOIN)
语法简洁和EF相似,但有区别的SqlSugar更适合字符串操作,例如Where("Id>@id",new{id=1})
//针对单表或者视图查询
var dt= db.GetDataTable("select * from Student");//查询所有
var student = db.Queryable().ToList();var studentDynamic = db.Queryable().ToDynamic();var studentJson = db.Queryable().ToJson();//查询单条
var single = db.Queryable().Single(c => c.id == 1);//查询单条没有记录返回空对象
var single2 = db.Queryable().Where(c => c.id == 1).SingleOrDefault();//查询第一条
var first = db.Queryable().Where(c => c.id == 1).First();var first2 = db.Queryable().Where(c => c.id == 1).FirstOrDefault();//取10-20条
var page1 = db.Queryable().Where(c => c.id > 2).OrderBy(it=>it.id).Skip(2).Take(3).ToList();//上一句的简化写法,同样取10-20条
var page2 = db.Queryable().Where(c => c.id > 1).OrderBy(it => it.id).ToPageList(2, 3);//查询条数
var count = db.Queryable().Where(c => c.id > 10).Count();//从第2条开始以后取所有
var skip = db.Queryable().Where(c => c.id > 10).OrderBy(it => it.id).Skip(2).ToList();//取前2条
var take = db.Queryable().Where(c => c.id > 10).OrderBy(it => it.id).Take(2).ToList();//Not like
string conval = "三";var notLike = db.Queryable().Where(c => !c.name.Contains(conval.ToString())).ToList();//Like
conval = "三";var like = db.Queryable().Where(c =>c.name.Contains(conval)).ToList();//可以在拉姆达使用 ToString和 Convert,比EF出色的地方
var convert1 = db.Queryable().Where(c => c.name == "a".ToString()).ToList();var convert2 = db.Queryable().Where(c => c.id == Convert.ToInt32("1")).ToList();//
var convert3 = db.Queryable().Where(c => DateTime.Now > Convert.ToDateTime("2015-1-1")).ToList();var convert4 = db.Queryable().Where(c => DateTime.Now >DateTime.Now).ToList();//支持字符串Where 让你解决,更复杂的查询
var student12 = db.Queryable().Where(c => "a" == "a").Where("id>100").ToList();var student13 = db.Queryable().Where(c => "a" == "a").Where("id>100 and id in( select 1)").ToList();//存在记录反回true,则否返回false
bool isAny100 = db.Queryable().Any(c => c.id == 100);bool isAny1 = db.Queryable().Any(c => c.id == 1);int maxId = db.Queryable().Max("id");int minId = db.Queryable().Where(c => c.id > 0).Min("id");//order By
var orderList = db.Queryable().OrderBy("id desc,name asc").ToList();//字符串支持多个排序//可以多个order by表达示
var order2List = db.Queryable().OrderBy(it => it.name).
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。