mysql sqlsugar_【开源框架】SqlSugarRepository 全库ORM 正式发布

SqlSugarRepository是一个全库开发的ORM框架,支持SqlServer、MySql、Oracle和Sqlite等多种数据库,实现了在同一查询语句下适配多种数据库的能力。框架提供丰富的语法、接近原生的性能,并且具备完整的学习文档。此外,还支持多库访问组件和统一的参数关键词,简化了数据库操作。
摘要由CSDN通过智能技术生成

SqlSugarRepository.dll 全库开发框架支持 四种数据库:SqlServer、 MySql 、Oracle和Sqlite。

SqlSugarRepository是为全库开发而生的ORM框架,能够做到多种数据库之间的无间隙切换,在这一年多的时间里,园友提出的各种需求我都已经切切实实的去做了,做到了能力范围内的最好,一个不错的里程碑。同时也对未来有了更明确的规划,这只是开源的开始,Sugar ORM 还会有更多惊喜。

基于SqlSugar的开源CMS(百签软件出品)和SqlSugar官网 本月将开源

主流ORM多库支持情况

Dapper 有多库访问组件,做不了同一个查询语句适用多种数据库。(select * from table这种除外)

EF  有多库访问组件,可以做到同一个查询适用多种数据库,但是命名空间引用不同需要自已用仓储实现多库

SqlSugarRepository 有多库访问组件,可以做到同一个查询适用多种数据库,已经实现内部工厂,比仓储模式的应变能力更强。

优点:

语法具有创新并且丰富

接近原生的性能

完整的学习文档

使用方便, Nuget直接搜索SqlSugarRepository下载便可,依赖dll都打包好了

Sugar ORM 所有成员

如果你只想操作一种数据库,可以针对不同数据库选择独立的dll

Asp.net 4.+Asp.net Core说明依赖

SqlSugar.dll

SqlSugarCore.dll

SqlServer ORM

MysqlSugar.dll

MysqlSugarCore.dll

MySql ORM

MySql.Data.dll

SqliteSugar.dll

SqliteSugarCore.dll

Sqlite ORM

System.Data.SQLite.dll

SQLite.Interop.dll(Core版不需要)

OracleSugar.dll

-

Oracle ORM

Oracle.ManagedDataAccess.dll

SqlSugarRepository.dll

-

SqlServer MySql Sqlite Oracle 四合一

MySql.Data.dll

System.Data.SQLite.dll

Oracle.ManagedDataAccess.dll

SQLite.Interop.dll

数据库连接

普通模式

这种模式简单粗爆,适合一个产品支持多种数据库,但是中间没有两种数据库同时操作。

//普通连接

using (ISqlSugarClient idb =DbRepository.GetInstance(DbType.MySql, SugarDao.MySqlConnString))//DbRepository 框架现成的类,并非自定义

{var list = idb.Queryable().First();

}

灵活模式

适合多种数据库混用项目

//使用MyRepository连接数据库

using (MyRepository db = newMyRepository())

{//当前连接的sqlconn1

var list = db.Database.Queryable().First();//切换mysqlconn1

db.SetCurrent(db.MySqlConn1);var list2 = db.Database.Queryable().First(); ;

}

usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSqlSugarRepository;namespaceNewTest.Demos

{public classMyRepository:DbRepository

{public ConnectionConfig SqlConn1 = new ConnectionConfig() { DbType = DbType.SqlServer, ConnectionString =SugarDao.SqlConnString1 };public ConnectionConfig SqlConn2 = new ConnectionConfig() { DbType = DbType.SqlServer, ConnectionString =SugarDao.SqlConnString2 };public ConnectionConfig MySqlConn1 = new ConnectionConfig() { DbType = DbType.MySql, ConnectionString =SugarDao.MySqlConnString };

}

}

MyRepository为自定义类继承 DbRepository

多库支持

统一参数关键词和Sqlparameter

不管操作哪个数据库关键词都是@并且用到Sqlparameter地方不需要切换成MySqlparameter这种,如下写法:

var student12 = db.Queryable().Where(c => c.name).Where("id>@id", new { id = 1 }).ToList();

db.SqlQuery("select * from Student where id=@id",new SqlParameter("@id","id"));

复杂SQL的选择器

当ORM语法不能满足的时候我们就需要用到原生SQL或者存储过程,sqlbuilder可以根据当前连接哪种数据库返回相应的SQL语句。

string sql =db.SqlBuilder()

.ToSqlServer("select top 1 id,name from student")

.ToOracle("select id,name from student where rownum=1")

.ToOther("select id,name from student limit 0,1").ToString();var list = db.SqlQuery(sql).SingleOrDefault();

返回类型的支持

Queryable返回类型支持四种 List  Dynamic   JsonString  DataTable

var student = db.Queryable().ToList();var studentDynamic = db.Queryable(

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值