前言

最近有个开发项目准备启动,由于要求的开发周期较短,所以准备用个C#的框架,原本最初考虑用成熟的EF框架,但是觉得那个框架也太重了,就在网上找找了别的,无意间发现了SqlSugar的框架。简单试了下,发现真是的方便,入门也简单。

SqlSugar介绍

SqlSugar ORM,NET 4.+ & .NET CORE 高性能轻量级ORM框架,众多.NET框架中最容易使用的数据库访问技术。

主页:http://www.codeisbug.com/

下载地址:https://github.com/sunkaixuan/SqlSugar

当然也可以直接用Nuget安装,非常方便。

SqlSugar的16大功能

SqlSugar查询特色

SqlSugar的优点

  • 高性能 ,不夸张的说,去掉Sql在数据库执行的时间,SqlSugar是EF数倍性能,另外在批量操作和一对多查询上也有不错的SQL优化

  • 高扩展性 ,支持自定义拉姆达函数解析、扩展数据类型、支持自定义实体特性,外部缓存等

  • 稳定性和技术支持,  虽然不是官方ORM, 但在稳定性上也是有着数年用户积累,如果遇到问题可以在GITHUB提出来,会根据紧急度定期解决

  • 功能全面,虽然SqlSugar小巧可功能并不逊色于EF框架

  • 创新、持续更新 ,向下兼容

SqlSugar项目创建

我们打开VS2017,新建一个C#的桌面应用程序,起名为SqlSugarTest

然后鼠标右键选择引用,选择管理NuGet程序包

然后点击浏览后输入sqlsugar查找,找到的第一个就是直接点击安装

安装完后点击已安装,并且点开右边的引用后也可以看到SqlSugar就已经安装好了,如下图

SqlSugar的简单用法

SqlSugarClient db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = "server=.;uid=sa;pwd=@jhl85661501;database=SqlSugar4XTest",DbType = DbType.SqlServer,//设置数据库类型IsAutoCloseConnection = true,//自动释放数据务,如果存在事务,在事务结束后释放InitKeyType = InitKeyType.Attribute //从实体特性中读取主键自增列信息});//用来打印Sql方便你调试
db.Aop.OnLogExecuting = (sql, pars) =>{Console.WriteLine(sql + "\r\n" + db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));Console.WriteLine();};    /*查询*/
var list = db.Queryable<StudentModel>().ToList();//查询所有
var getById = db.Queryable<StudentModel>().InSingle(1);//根据主键查询
var getByWhere = db.Queryable<StudentModel>().Where(it=>it.Id==1).ToList();//根据条件查询
var total = 0;
var getPage = db.Queryable<StudentModel>().Where(it => it.Id == 1).ToPageList(1,2,ref total);//根据分页查询
//多表查询用法 http://www.codeisbug.com/Doc/8/1124/*插入*/
var data = new Student() { Name = "jack" };
db.Insertable(data).ExecuteCommand();
//更多插入用法 http://www.codeisbug.com/Doc/8/1130/*更新*/
var data2 = new Student() { Id =1, Name = "jack" };
db.Updateable(data2).ExecuteCommand();
//更多更新用法 http://www.codeisbug.com/Doc/8/1129/*删除*/
db.Deleteable<StudentModel>(1).ExecuteCommand();

实体类用法

//如果实体类名称和表名不一致可以加上SugarTable特性指定表名
[SugarTable("Student")]
public class StudentModel
{//指定主键和自增列,当然数据库中也要设置主键和自增列才会有效[SugarColumn(IsPrimaryKey=true,IsIdentity =true)]public int Id { get; set; }public string Name { get; set; }
}

根据实体类创建表

db.CodeFirst.SetStringDefaultLength(200/*设置varchar默认长度为200*/).InitTables(typeof(StudentModel));//执行完数据库就有这个表了

总结:

SqlSugar是通过Queryable、Updateable、Deleteable和Insertable实现的增删改查。

下一篇我们会根据用刚创建的这个Demo来做一些具体操作。

-END-

Vaccae的往期经典


OpenCV

《C++ OpenCV案例实战---卡号获取》

《C++ OpenCV案例实战---卡片截取(附代码)》

《C++ OpenCV透视变换---切换手机正面图片》

《C++ OpenCV实战---获取数量》

《C++ OpenCV实战---利用颜色分割获取数量》

《OpenCV4Android NDK方式进行Canny边缘检测》

《OpenCV4Android NDK方式TesserartOCR实时进行识别》

《OpenCV4Android NDK级联方式实时进行人脸检测》


Android

《Android利用SurfaceView结合科大讯飞修改语音实别UI》

《Android关于语音识别的功能实现分析(一)---结构化思维》

《Android关于语音识别的功能实现分析(二)---语义解析》

《Android根据类生成签名字符串》

《Android碎片化布局fragment的实战应用》

《Android中RecyclerView嵌套RecyclerView》

《Android里用AsyncTask后的接口回调》


.Net C#

《C#自定义特性(Attribute)讲解与实际应用》

《C#根据类生成签名字符串(附DEMO下载地址)》

《C++创建动态库C#调用》

《C#与三菱PLC(型号FX2N)串口通讯类》


数据库及其它

《Oracel存储过程写报表实战》

《Delphi轮播视频和图片程序(用于双屏显示程序)》

《SQL随机增加销售数据的脚本编写(附脚本下载地址)》

《SQL Server中With As的介绍与应用(三)--递归的实战应用》

《Oracle通过ODBC连接SQL Server数据库》

《Oracle利用row_number()over()方式解决插入数据时重复键的问题》


长按下方二维码关注微卡智享

C# SqlSugar框架的学习使用(一)--SqlSugar简介及创建相关推荐

  1. C# SqlSugar框架的学习使用(五)-- 更新和删除数据的详细用法

    前言 上一篇<C# SqlSugar框架的学习使用(四)-- 插入数据的详细用法>我们已经把SqlSugar的插入多种用法实现了,这篇我们就来说说更新数据和删除数据的多种用法.我们就用上一 ...

  2. SqlSugar框架的学习

    SqlSugar ORM 5.X 官网 .文档.教程 - SqlSugar 5x - .NET果糖网 (donet5.com) 参考文档: 基于SqlSugar的数据库访问处理的封装,支持多数据库并使 ...

  3. 定时任务框架APScheduler学习详解

    定时任务框架APScheduler学习详解 APScheduler简介 在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序,定时爬出网站的URL程序,定时检测钓鱼网站 ...

  4. 通过 DLPack 构建跨框架深度学习编译器

    通过 DLPack 构建跨框架深度学习编译器 深度学习框架,如Tensorflow, PyTorch, and ApacheMxNet,快速原型化和部署深度学习模型提供了强大的工具箱.不幸的是,易用性 ...

  5. Java3大框架的学习都是什么

    java是互联网行业的第一编程语言,相信大家都已经有了解了,事实也确实如此,java还是世界第一编程语言,在java培训学习的过程中,框架是程序员们必学的知识点,而且是十分重要的应用,Spring.S ...

  6. 适合初学者对Yaf框架的学习(一)

    前言 最近接触到Yaf框架,从最初按照鸟哥惠新宸的写的关于Yaf手册,到自己写一个hello world 程序,对于我这个新手来说还是蛮曲折的,大家都知道yaf框架是用C写的,所以自身的效率和性能,还 ...

  7. Java的3大框架都学习什么呢?

    Java是互联网行业的第一编程语言,相信大家都已经有了解了,事实也确实如此,Java还是世界第一编程语言,在学习Java的过程中,框架是程序员们必学的知识点,而且是十分重要的应用,Spring.Str ...

  8. Hacker News热文:请停止学习框架,学习领域驱动设计(DDD)(获500个点赞)

    在 Hacker News 上获得接近 500 个点赞的一篇名为<停止学习框架>的文章称: 我们是程序员,每天都在了解最新的技术,每天都在学习编程语言.框架和库,因为我们知道的现代编程工具 ...

  9. 迷你MVVM框架 avalonjs 学习教程20、路由系统

    迷你MVVM框架 avalonjs 学习教程20.路由系统 时间 2014-10-28 14:44:00  Ruby's Louvre 原文  http://www.cnblogs.com/rubyl ...

最新文章

  1. 3使用Jsoup解析Java中HTML文件的示例
  2. android开发百度地图坐标偏差,利用百度地图Android sdk高仿微信发送位置功能及遇到的问题...
  3. codeforces 271A-C语言解题报告
  4. GIT commit问题 No errors and 30 warnings found. Would you like to review them?
  5. java中使用rmi进行远程方法调用
  6. 转换图片保持画质_图片格式怎么相互转换,如何转换jpg、 bmp、png格式
  7. linux fuse 阻塞,FUSE原理总结
  8. 星云STS 常用配置
  9. 视频去模糊论文阅读-Cascaded Deep Video Deblurring Using Temporal Sharpness Prior
  10. Silvaco_VP_INIT
  11. linux软硬链接 计数,深入理解Linux的软链接和硬链接
  12. 晶振匹配电容如何计算?--转载
  13. 百度推广的优势和劣势
  14. Trajan/强连通(石油大学组队赛 B: Thrall’s Dream)
  15. 110115-07-6,Ac-LLM-CHOCalpain 抑制剂
  16. 【高项】- 采购管理论文
  17. 智慧CAD手机看图隐私政策
  18. uniapp实现点击播放mp3音频文件
  19. substrate中打印调试信息的多种方式详解
  20. 关于Android app 国际化 中英文翻译的细节处理

热门文章

  1. 客似云来, 剪花布条
  2. ManageEngine 详解IT服务管理(ITSM)流程五阶段
  3. python和cc哪个适合做游戏的背景音乐_(转)CocosCreator零基础制作游戏《极限跳跃》九、为游戏添加声音音效功能...
  4. 电商平台零售数据分析
  5. 推荐一个必学的嵌入式开源项目
  6. 对象、内置对象、数组对象、字符串对象的使用
  7. 【 Java基础】试试通俗易懂的Lambda表达式?
  8. Vimium-chrome操作神器
  9. 关于WEBQQ的实现(二)
  10. 计算24点游戏精化算法剖析