有哪些推广的网站,专业网站建设微信官网开发,网站外链建设需要考核,个人备案可以做企业网站吗.NET开源 ORM 框架 SqlSugar 系列
【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务… .NET开源 ORM 框架 SqlSugar 系列
【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务】.NET开源 ORM 框架 SqlSugar 系列【连接池】.NET开源 ORM 框架 SqlSugar 系列【查询目录】.NET开源 ORM 框架 SqlSugar 系列【查询基础】.NET开源 ORM 框架 SqlSugar 系列 万丈高楼平地起做开发想要技术精进必须要有扎实的基础功底。基础SQL查询语法一定要牢记于心才能应对后面更为复杂的形势。 01. 查所有字段
ListStudent listdb.QueryableStudent().ToList()
//select * from Student
02. 查询总数
int countdb.QueryableStudent().Count()
//select count(1) from Student
03. 按条件查询
db.QueryableStudent().Where(itit.Id1).ToList()
//select * from Student where id1db.QueryableStudent().Where(itit.name !null).ToList()//不是null
//select * from Student where name is not nulldb.QueryableStudent().Where(itit.name null).ToList()//是null
//select * from Student where name is nulldb.QueryableStudent().Where(itit.name !).ToList()//不是空 ,不为空
//select * from Student where name
04. 多条件查询
db.QueryableStudent().Where(itit.Id10it.Namea).ToList()
//select * from Student where id10 and namea
db.QueryableStudent().Where(itit.Id10).Where(itit.Namea).ToList()
//select * from Student where id10 and namea
//如果是或者关系可以用 ||
05. 动态OR查询
var exp Expressionable.CreateStudent();
exp.OrIF(条件,itit.Id1);//.OrIf 是条件成立才会拼接OR
exp.Or(it it.Name.Contains(jack));//拼接OR
var listdb.QueryableStudent().Where(exp.ToExpression()).ToList();
06. 模糊查询
db.QueryableStudent().Where(it it.Name.Contains(jack)).ToList();
//select * from Student where name like %jack%
07. 根据主键查询
/*单主键查询*/
db.QueryableStudent().InSingle(2) //通过主键查询 SingleById
db.QueryableStudent().Single(itit.Id2) //根据ID查询
//select * from Student where id2/*多主键查询*/
var getAlldb.QueryableOrder().WhereClassByPrimaryKey(new Order(){Pk11,Pk2xx}).ToList(); //单个实体
vargetAlldb.QueryableOrder().WhereClassByPrimaryKey(ListOrder).ToList(); //支持集合
08. 查询第一条 第一行
.First() 等同于C#中的 FirstOrDefault , 没有值返回 null db.QueryableStudent().First(itit.Id1) //没有返回Null
//select top 1 * from Student where id1
09. 查询最后一条
First() 等同于C#中的 FirstOrDefault , 没有值返回 null
db.QueryableStudent()
.OrderBy(itit.Id,OrderByType.Desc )// 倒序
.First(itit.Id10) //没有返回Null
//select top 1 * from Student order by id desc where id10
10. 查前几条 db.QueryableStudent().Take(10).ToList()
//select top 10 * from Student
11. 数据行数
db.QueryableStudent().Where(itit.Id11).Count()//同步
db.QueryableStudent().Where(itit.Id11).CountAsync()//异步
//select count(*) from Student where id11
//你也可以用函数
SqlFunc.AggregateCount
12. 设置新表名
//例1更新表名
db.QueryableSchool().AS(Student).ToList();
//生成的SQL SELECT [ID],[NAME] FROM Student
//动态表名 表别名 指定表明//例2给表名添加前缀
db.QueryableSchool().AS(dbo.School).ToList();
//生成的SQL SELECT [ID],[NAME] FROM dbo.School//如果不用AS也可以在特性中设置别名,看文档实体本置
13. 是否存在记录
is exists
db.QueryableStudent().Where(itit.Id11).Any()
db.QueryableStudent().Any(itit.Id11) //上面语法的简化
//异步就是 AnyAsync()
14. In查询(单个字段)
单个字段
int [] allIds new int[]{2,3,31};
db.QueryableOrderItem().Where(it allIds.Contains(it.OrderId)).ToList()
//orderid in (2,3,31)
//支持超过 1000以上只要数据库不慢没有上限//字符串类型 varchar和nvarchar (默认varchar来保证性能)NameList.Contains(it.Name,true) //true和false来控制是varchar还是nvarchar
15. In查询多个字段
多个字段 (升级5.1.4.67-preview04
ListOrderItem listxxx;db.QueryableOrderItem().Where(it list.Any(s s.Id it.Id s.Name it.Name))//也可以用动态表达式拼OR实现
16. In模糊查询
对象集合In like 升级5.1.4.67 ListOrderItem listxxx;db.QueryableOrderItem().Where(it list.Any(s it.Name.Contanins(s.Name)))//也可以用动态表达式拼OR实现
数组集全 in like 5.1.4.85 Liststring listxxx;db.QueryableOrderItem().Where(it list.Any(s it.Name.Contanins(s)))//也可以用动态表达式拼OR实现
17. Not In
int [] allIds new int[]{2,3,31};
db.QueryableOrderItem().Where(it !allIds.Contains(it.OrderId)).ToList()
//orderid NOT in (2,3,31)
18. 简单排序
db.QueryableStudent().OrderBy((st,sc)sc.Id,OrderByType.Desc).ToList()
//排序 可以多个
//更多用法
https://www.donet5.com/Home/Doc?typeId2312
19. 查询单条
查询一条
db.QueryableStudent().Single(itit.Id1) //没有返回Null如果结果大于1条会抛出错误
//select * from Student where id1 // 查询id等于1的单条记录
20. 获取最大值
db.QueryableOrder().Max(itit.Id);//同步
db.QueryableOrder().MaxAsync(itit.Id);//异步
//也可以用函数 SqlFunc.AggregateMax
21. 获取最小值
db.QueryableOrder().Min(itit.Id);//同步
db.QueryableOrder().MinAsync(itit.Id);//异步
//也可以用函数 SqlFunc.AggregateMin
22. 求和
db.QueryableOrder().Sum(itit.Id);//同步
db.QueryableOrder().SumAsync(itit.Id);//异步
//也可以用函数 SqlFunc.AggregateSum
23. 平均值
db.QueryableOrder().Avg(itit.Id);//同步
db.QueryableOrder().AvgAsync(itit.Id);//异步
//也可以用函数 SqlFunc.AggregateAvg
24. 查询过滤排除某一个字段
生成的sql Select 不会有Files
/***单表***/
db.QueryableOrder().IgnoreColumns(itit.Files).ToList();//只支持单表查询/***联查***/
//是主表
var leftQuerydb.QueryableOrder().IgnoreColumns(itit.Files);
var listdb.Queryable(leftQuery).LeftJoinOrderDetails((o,d)o.idd.orderid).Select(oo).ToList(); //是Join的表
var rightQuery db.QueryableOrderItem().IgnoreColumns(itit.Files);
var listdb.QueryableOrder().LeftJoin(rightQuery,(o,d)o.Id d.OrderId).Select(oo).ToList();