目录
一、ORM框架
常用的ORM框架有Dapper、EF/EF Core、FreeSql、Dos.ORM、SqlSugar等,SqlSugar是国产的
二、SqlSugar现状
SqlSugar ORM 5.X 官网 、文档、教程 - SqlSugar 5x - .NET果糖网 (donet5.com)
这个是官网,是果糖网维护和更新的,下面是来自官网的一段SqlSugar的功能介绍
三、SqlSugar的优点
高性能 ,不夸张的说,去掉Sql在数据库执行的时间,SqlSugar是EF数倍性能,另外在批量操作和一对多查询上也有不错的SQL优化
高扩展性 ,支持自定义拉姆达函数解析、扩展数据类型、支持自定义实体特性,外部缓存等
稳定性和技术支持, 虽然不是官方ORM, 但在稳定性上也是有着数年用户积累,如果遇到问题可以在GITHUB提出来,会根据紧急度定期解决
功能全面,虽然SqlSugar小巧可功能并不逊色于EF框架
创新、持续更新 ,向下兼容
四、SqlSugar的使用
先用Nuget引用程序集(SqlSugarCore)
DBFirst——数据库生成实体对象——代码生成器的功能
五、主要函数
public static ConnectionConfig BuildConnConfig(dynamic configId, DbType dbType, string connectionString)
{
return new ConnectionConfig()
{
ConfigId = configId,
DbType = dbType, //数据库类型
ConnectionString = connectionString,//连接字符串
IsAutoCloseConnection = true, //自动释放和关闭数据库连接,如果有事务事务结束时关闭,否则每次操作后关闭//是否自动释放数据库(默认false),设为true我们不需要close或者Using的操作,比较推荐
MoreSettings = new ConnMoreSettings()//更多设置
{
IsWithNoLockQuery = true //为true表示可以自动删除二级缓存
},
//InitKeyType = InitKeyType.Attribute,//默认就是这个,从实体特性中读取主键自增列信息,初始化主键和自增列信息到ORM的方式
AopEvents = new AopEvents //调试SQL事件,可以删掉
{
OnLogExecuting = (sql, p) =>
{
p.ToDictionary(it => it.ParameterName, it => it.Value);
System.Diagnostics.Trace.WriteLine(sql);
System.Diagnostics.Trace.WriteLine(string.Join(",", p?.Select(it => it.ParameterName + ":" + it.Value)));
}
}
};
}
六、传参
在一个json文件中配置好了数据库的参数,到时候直接读取json,并转换成一个实体类的对象
五、读写分离
SqlSugar是通过Queryable、Updateable、Deleteable和Insertable实现的增删改查。 SqlSugar底层还是执行的SQL语句。数据库和数据库中的表都不需要提前创建,SqlSugar可以帮助我们创建数据库和表
执行上面这两代码SqlSugar就会自动创建数据库和表。这段代码一般只执行一次,创建完成就注释,避免重复执行,影响程序执行效率。