9.15 Sql 操作
温馨提示
推荐使用 《9.17 Sql 高级代理》代替本章节功能。Sql 高级代理
能够提供更容易且更易维护的方式。
9.15.1 关于 Sql
#
Furion
框架提供非常多且灵活的 sql
操作方法,且性能不输于 dapper
,同时逼近 ADO.NET
原生操作。
9.15.2 懒人无敌 Sql
🐮#
9.15.2.1 返回 DataTable
#
9.15.2.2 返回 List<T>
#
9.15.2.3 返回 DataSet
#
9.15.2.4 返回 Tuple<T1,...T8>
#
9.15.2.5 返回 单行单列#
9.15.2.6 返回 受影响行数#
9.15.3 懒人无敌 存储过程
🐮#
9.15.3.1 返回 DataTable
#
9.15.3.2 返回 List<T>
#
9.15.3.3 返回 DataSet
#
9.15.3.4 返回 Tuple<T1,...T8>
#
9.15.3.5 返回 单行单列#
9.15.3.6 返回 受影响行数#
9.15.3.7 带 OUTPUT/RETURN
返回#
9.15.4 懒人无敌 函数
🐮#
9.15.4.1 标量函数
#
9.15.4.2 表值函数
#
9.15.5 ISqlRepository
操作#
ISqlRepository
仓储是专门处理 Sql
操作的,无需实体方式,所有接口和 懒人无敌
方式一样:
补充说明
不管是那种方式操作 Sql
,方法名参数都是一致的,如:
SqlQuery
SqlQueryAsync
SqlQueries
SqlQueriesAsync
SqlNonQuery
SqlNonQueryAsync
SqlScalar
SqlScalarAsync
SqlProcedureQuery
SqlProcedureQueryAsync
SqlProcedureQueries
SqlProcedureQueriesAsync
SqlProcedureScalar
SqlProcedureScalarAsync
SqlProcedureNonQuery
SqlProcedureNonQueryAsync
SqlProcedureOutput
SqlProcedureOutputAsync
SqlFunctionScalar
SqlFunctionScalarAsync
SqlFunctionQuery
SqlFunctionQuery
9.15.6 IRepository
操作#
IRepository
也能操作 sql
,调用方法也是和上面一致的,如:
特别说明
由于篇幅有限,不再列举所有例子。
9.15.7 IRepository<TEntity>
操作#
IRepository<TEntity>
也能操作 sql
,调用方法也是和上面一致的,如:
特别说明
由于篇幅有限,不再列举所有例子。
9.15.8 关于 Sql
参数#
所有 sql
、存储过程
,函数
参数都支持四种方式:
DbParameter[]
:数组类型new {}
:匿名类型new Class{}
:强类型类型(支持复杂存储过程参数)Dictionary<string,object>
类型
小知识
建议除了复杂的存储过程(带 OUTPUT/RETURN
)的以外,所有参数建议使用 new {}
匿名类型,如果需要动态参数,则可以使用 Dictionary<string,object>
类型。
9.15.9 多数据库 Sql
操作 💯 💛#
Furion
框架拥有非常灵活的多数据库操作方式,只需通过多数据库上下文定位器即可动态切换数据库。
9.15.9.1 懒人无敌 🐮 方式#
补充说明
懒人方式 只需要通过 Change<TDbContextLocator>
方式即可动态切换数据库。
9.15.9.2 ISqlRepository
方式#
只需要通过 ISqlRepository<TDbContextLocator>
注入或通过 sqlRepository.Change<TDbContextLocator>()
切换。
9.15.9.3 IRepository
方式#
只需要通过 repository.Change<TDbContextLocator>()
获取即可。
9.15.9.4 IRepository<TEntity>
方式#
只需要通过 IRepository<TEntity, TDbContextLocator>
注入或通过 personRepository.Change<TEntity, TDbContextLocator>()
切换。
9.15.10 反馈与建议#
与我们交流
给 Furion 提 Issue。