摘要:
1、已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。 There is already an open DataReader associated with this Connection which must be closed first. 或者出现 conne 阅读全文
摘要:
1、 多库和多租户 如果是接口ISugarClient先看一下标题6,看完在看这儿 1.1 固定多数据库模式 数据库数量是固定的一般在声明的全部加上 //通过ConfigId进行数据库区分 var db = new SqlSugarClient(new List<ConnectionConfig>( 阅读全文
摘要:
一、使用场景 (1)可扩展架构设计,比如一个ERP用5年不卡,到了10就卡了因为数据太多了,这个时候很多人都是备份然后清空数据 (2) 数据量太多 ,例如每天都有 几十上百万的数据进入库,如果不分表后面查询将会非常缓慢 (3) 性能瓶颈 ,数据库现有数据超过1个亿,很多情况下索引会莫名失效,性能大大 阅读全文
摘要:
用法 我们可以使用SqlFunc这个类调用Sql函数,用法如下: db.Queryable<Student>().Where(it => SqlFunc.ToLower(it.Name) == SqlFunc.ToLower("JACK")).ToList(); C#函数 支持一些常用的C#函数 . 阅读全文
摘要:
1、仓储说明 仓储可以让你的方法更加的规范,需要什么方法都封装到仓储中,下次就能重复使用,并且能很好的和你业务拆分开 这种设计模式简单粗暴用起来也方便 ,文章下面有可以运行的DEMO 2、仓储方法 仓储有一套自带的数据库操作方法,比起 db.xx.xxx来说可能更简便些满足一些常用需求, 复杂的功能 阅读全文
摘要:
1、实体使用自带特性 1.1 使用用例 对于 CRUD来说只需要配置主键和自增列就行了 ,如果类的名称和数据库不一样可以设置数据库中的名称 主键自增 [SugarTable("dbstudent")]//当和数据库名称不一样可以设置表别名 指定表明 public class Student { [S 阅读全文
摘要:
一、跨库方式1:跨库导航 (5.1.3.24) 优点1:支持跨服务器,支持跨数据库品种, 支持任何类型数据库 优点2: 超级强大的性能,能达到本库联表性能 缺点:不支持子表过滤主表 (方案有ToList后在内存过滤, 如果分页可以查前1000条主表在内存分页 前端只显示前10页) [Tenant(" 阅读全文
摘要:
Select 位置 正常情况:应该在最后面, 一般是 .Where(..).OrderBy(..).Select(..).ToList() 特殊情况:如果Select不是最后一个位置,则Select要加MergeTable()合并成一个表, Select(...).MergeTable().Wher 阅读全文
摘要:
1、普通表达式查询 //id=@id var list=db.Queryable<Student>().Where(it => it.Id == id).ToList(); //多个条件 var list2=db.Queryable<Student>() .WhereIF(id>0,it => it 阅读全文
摘要:
1、导航查询特点 作用:主要处理主对象里面有子对象这种层级关系查询 1.1 无外键开箱就用 其它ORM导航查询 需要 各种配置或者外键,而SqlSugar则开箱就用,无外键,只需配置特性和主键就能使用 1.2 高性能优 查询 性能非常强悍 5.0.8.1preview02版本进行了性能优化 支持大数 阅读全文
摘要:
1、基础教程 1.1 API目录 *****只查一列***** //First: SqlFunc.Subqueryable<School>().Where(s => s.Id == st.Id).Select(s => s.Id) //max例1: SqlFunc.Subqueryable<Scho 阅读全文
摘要:
Join用法 语法糖1、2和3 在Where OrderBy GroupBy Select用法都一样的,他们区别就在JOIN的方式不一样,其它都一样 语法糖1 优点:好理解,5个表以内的联表非常爽,支持功能全 缺点: 联表超过5个以上的表后 (x,b,c...) 会比较难看,语法糖2可以弥补 表和表 阅读全文
摘要:
一、分组查询和使用 1.1 语法 只有在聚合对象需要筛选的时候才会用到Having,一般分组查询用不到可以去掉 var list = db.Queryable<Student>() .GroupBy(it => new { it.Id, it.Name }) //可以多字段 .Where(it=>i 阅读全文
摘要:
同步分页 int pagenumber= 1; // pagenumber是从1开始的不是从零开始的 int pageSize = 20; int totalCount=0; //单表分页 var page = db.Queryable<Student>().ToPageList(pagenumbe 阅读全文
摘要:
查所有 List<Student> list=db.Queryable<Student>().ToList() //select * from Student 查询总数 int count=db.Queryable<Student>().Count() //select count(1) from 阅读全文
摘要:
1、根据实体删除 1.1 强类型实体 需要配置主键 ,根据主键删除需要给实体配置主键,参考文档实体配置 //单个实体 db.Deleteable<Student>(new Student() { Id = 1 }).ExecuteCommand(); //List<实体> (可以不加Where) L 阅读全文
摘要:
1、根据实体对象更新 所谓按实体对象更新就是:db.Updateable(参数对象) 有参数的重载 db.Updateable(实体或者集合).ExecuteCommand() //右标题1 下面的所有菜单 优点 1、代码少 2、支持各种批量修改 缺点 1、不支持表达式和sql函数 2、依赖 实体对 阅读全文
摘要:
1、插入方式 1.1 单条插入实体 //返回插入行数 db.Insertable(insertObj).ExecuteCommand(); //都是参数化实现 //异步: await db.Insertable(insertObj).ExecuteCommandAsync() //插入返回自增列 ( 阅读全文
摘要:
注意点 1.SqlSugar Code First可以快速开发,使用起来也要分阶段使用,比如早期随便搞,中后期需要禁用一些功能保证数据安全(标题6和7 ) 2.数据库账号需要有比较高的权限, 3.Sqlite不支持删除列和修改列只能添加列 1、入门示例 会根据连接字符串中的数据库进行创建 //建库: 阅读全文
摘要:
SqlSugar入门 创建对象 你可以使用 SqlSugarClient (new模式)或者 SqlSugarScope (单例) 对数据库进行增、删、查、改等功能 注意:除了名字和使用模式不同,功能和API都一模一样 SqlSugarClient(new模式) 优点:性能比SqlSugarScop 阅读全文