SmartSql 更新历史记录

3.7.0

  1. support cross SqlMap reference for #30
  2. modifying Statement.Ref for delay dependence
  3. optimize Analyse Statement.SqlCommandType
  4. optimize CheckIncludeCyclicDependency
  5. fixed MultipleResultMap.Root result Map
  6. fixed PreparedCommand Sql log output for IgnoreParameterCase

3.6.8

  1. add support Statement for Transaction
  2. optimize Log output for issues:35
  3. add support [.] PropertyAccessor
  4. add support alias for SmartSqlOptions

3.6.6

  1. fixed ObjectUtils key conflicts
  2. add support for SmartSqlMapper multiple instance injection
  3. add support for IServiceProvider.GetSmartSqlMapper(string configPath)
      var smartSqlMapper = serviceProvider.GetSmartSqlMapper("SmartSql");
var smartSqlMapper_1 = serviceProvider.GetSmartSqlMapper("SmartSql-1");
  1. optimize Options DI for SmartSqlOptions.UseOptions
            var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("SmartSqlConfig.json", false, true); var configuration = builder.Build();
var services = new ServiceCollection(); services.AddOptions();
var smartSqlConfigJson = configuration.GetSection("SmartSqlConfig");
services.Configure<SmartSqlConfigOptions>("SmartSql", smartSqlConfigJson); services.AddSmartSql(sp =>
{
return new SmartSqlOptions
{
ConfigPath= "SmartSql"
}.UseOptions(sp);
});

3.6.4

  1. added support Root for MultipleResultMap
  2. added support ReadDb for Statement
  3. optimized PreparedCommand.Prepare log output

3.6.3

  1. optimized ITransaction Extension
  2. default injection SmartSql for AddRepository DI
  3. fixed path error for SmartSql.Options
  4. fixed SqlCommandAnalyzer
  5. add SqlIdNamingConvert

v3.6.0-rc1

  1. add MultipleResultMap
  2. add GetNested api
  3. add GetNestedAsync api
  4. add FillMultiple api
  5. add FillMultipleAsync api
  6. optimized ValueTuple result type for Repository
  7. add support Nested result type for Repository
    <MultipleResultMap Id="QueryByPageMReuslt">
<Result Property="Total"/>
<Result Property="List"/>
</MultipleResultMap>
<Statement Id="MQueryByPage" MultipleResultMap="QueryByPageMReuslt">
Select Count(1) From T_Entity;
Select Top 10 T.* From T_Entity T
</Statement>
    public class QueryByPageResponse
{
public int Total { get; set; }
public IEnumerable<T_Entity> List { get; set; }
} QueryByPageResponse MQueryByPage();

v3.5.14

  1. enhanced Maps.Statement support for CommandType and SourceChoice
  2. fixed Tag.For NotDirectValue bug
  3. optimized RequestContext.Request is DbParameterCollection

v3.5.10

  1. fixed Generic nested return value bug
  2. optimized DyRepository DI register
  3. fixed the same naming problems with different repository interfaces
  4. enhanced stored procedure support
  5. fixed the cache penetration problem with the cache value of null
  6. optimized storage procedure call interface construction

v3.5.3

  1. add support ValueTuple result
(int,User) QueryByPage(object reqParams);

(int,T) QueryByPage<T>(object reqParams);

v3.5.2

  1. add support SmartSqlMapConfig.SmartSqlMap.Type=DirectoryWithAllSub

v3.5.1

  1. add support QueryMultiple and QueryMultipleAsync
  2. SmartSql.DyRepository add support QueryMultiple And QueryMultipleAsync result
  3. support change table structure auto Deserializer
  4. SmartSql.Options add UserOptions for DI
  5. add support Env SmartSqlConfigPath
    • 5.1 Production => SmartSqlMapConfig.xml
    • 5.2 Development => SmartSqlMapConfig.Development.xml
    • 5.3 Staging => SmartSqlMapConfig.Staging.xml

v3.4.9

  1. fix DyRepository ExecuteBehavior.Auto bug

v3.4.8

  1. optimize DyRepository automatic execute for return int
  2. optimize default excute DataSourceChoice
  3. add support StatementAttribute.CommandType and SourceChoice

v3.4.3

  1. fix sqlmap hot update bug
  2. add support multi SmartSqlMapper instance
  3. fix Tag.Placeholder Space bug
  4. optimize SQL output
  5. Support for returning generic type nesting
  6. add support IRepositoryAsync
  7. add support muti custom scope_template
  8. fix Cache.FlushInterval attr bug
  9. optimize the resource reading directory

v3.3.8

  • fix GetDataSetAsync to use NextResultAsync
  • fix IsStatementSql.Defalut-Value=true
  • SmartSql.DyRepository support ParamAttribute
  • add SmartSql.Options DI AddSmartSqlOptionLoader & AddSmartSqlOption

v3.3.6

  • add ISession
  • add ITransaction
  • add ISession to DI
  • add ITransaction to DI
  • add ISmartSqlMapperAsync to DI

v3.3.3

  • add support ResultMap.Constructor
  • add support private ctor entity deser

v3.3.1

  • SmartSql.DyRepository add support asynchronous function
  • add support DEBUG-log output SQL And DBParameters.

v3.2.0

  1. add support pure SQL parameters For RequestContext.RealSql
  2. add support SmartSql.DyRepository Sql Attribute For StatementAttribute.Sql

SmartSql.DyRepository Demo

        [Statement(Sql = "Select Top(@Taken) T.* From T_Entity T With(NoLock);")]
IEnumerable<T_Entity> QueryBySql(int Taken);

v3.1.0

  1. add GetDataTable Method
  2. add GetDataSet Method
  3. add GetDataTableAsync Method
  4. add GetDataSetAsync Method

SmartSql V3 Update

The lightest ORM in history! 107kb

Update content

  1. Remove Dapper dependency
  2. Support stored procedures
  3. Enhanced extensibility
  4. Refactoring code
  5. Optimal cache trigger strategy
  6. Dynamic implementation of Repository interface
  7. Support Parameter & Result Map & TypeHandler
  8. High performance

Performance evaluation


BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
Intel Core i7-6700K CPU 4.00GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=2.1.201
[Host] : .NET Core 2.0.7 (CoreCLR 4.6.26328.01, CoreFX 4.6.26403.03), 64bit RyuJIT
DefaultJob : .NET Core 2.0.7 (CoreCLR 4.6.26328.01, CoreFX 4.6.26403.03), 64bit RyuJIT
ORM Type Method Return Mean Error StdDev Rank Gen 0 Gen 1 Gen 2 Allocated
Native NativeBenchmarks Query_GetValue_DbNull IEnumerable 78.39 ms 0.8935 ms 0.7921 ms 1 3000.0000 1125.0000 500.0000 15.97 MB
SmartSql SmartSqlBenchmarks Query IEnumerable 78.46 ms 0.2402 ms 0.1875 ms 1 2312.5000 1000.0000 312.5000 12.92 MB
SmartSqlDapper SmartSqlDapperBenchmarks Query IEnumerable 78.65 ms 1.2094 ms 1.1312 ms 1 3687.5000 1437.5000 687.5000 19.03 MB
Native NativeBenchmarks Query_IsDBNull_GetValue IEnumerable 78.84 ms 0.8984 ms 0.7502 ms 1 2312.5000 1000.0000 312.5000 12.92 MB
Dapper DapperBenchmarks Query IEnumerable 79.00 ms 1.0949 ms 0.9706 ms 1 3312.5000 1312.5000 625.0000 17.19 MB
EF EFBenchmarks Query IEnumerable 79.44 ms 1.6880 ms 1.5789 ms 1 6250.0000 - - 26.05 MB
SqlSugar SqlSugarBenchmarks Query IEnumerable 81.09 ms 0.8718 ms 0.7728 ms 2 2187.5000 875.0000 250.0000 12.64 MB
Chloe ChloeBenchmarks Query IEnumerable 83.86 ms 1.2714 ms 1.1893 ms 3 2250.0000 937.5000 312.5000 12.62 MB
EF EFBenchmarks SqlQuery IEnumerable 89.11 ms 0.7562 ms 0.6314 ms 4 8187.5000 125.0000 - 33.68 MB
EF EFBenchmarks Query_NoTracking IEnumerable 93.13 ms 0.8458 ms 0.7912 ms 5 5875.0000 2250.0000 1062.5000 29.71 MB
EF EFBenchmarks SqlQuery_NoTracking IEnumerable 106.89 ms 1.0998 ms 1.0288 ms 6 7437.5000 2875.0000 1312.5000 37.34 MB

SmartSql 更新日志的更多相关文章

  1. [实战]MVC5+EF6+MySql企业网盘实战(29)——更新日志

    摘要 NetDisk更新日志,及项目使用说明. 开发工具 Vs2013+mysql+ef6+mvc5 bug 1.在加载列表的时候,默认加载的所有,修改为,过滤逻辑删除的文件. 2.加载音乐,文档等分 ...

  2. AgileEAS.NET SOA中间件平台更新日志 2015-04-28

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  3. python解析git log后生成页面显示git更新日志信息

    使用git log可以查到git上项目的更新日志. 如下两个git项目,我想把git的日志信息解析成一个便于在浏览器上查看的页面. https://github.com/gityf/lua https ...

  4. Easy Sysprep更新日志-skyfree大神

    Easy Sysprep更新日志: Skyfree 发表于 2016-1-22 13:55:55 https://www.itsk.com/forum.php?mod=viewthread&t ...

  5. 更新日志 - fir.im「高级统计」功能上线

    距离 2016 年到来只剩 10 个日夜,fir.im 也准备了一些新鲜的东西,比如「高级统计」功能和「跳转应用商店」功能,帮助你更好地管理.优化应用,欢迎大家试用反馈:) 新增高级统计功能 这次更新 ...

  6. 更新日志 - fir.im Jenkins & Gradle 插件上线

    最近 fir.im 工程师们效率爆表,fir.im 实用工具集合又添加了新的成员-- Jenkins & Gradle 插件,让 App 打包上传更加简单快速. fir.im Jenkins ...

  7. 更新日志 - BugHD 新增邮件告警功能

    最近 BugHD 又新增了一些功能,包括邮件告警. issue 分享. issue 备注等,同时也做了性能优化.希望能够帮助你更高效地收集解决应用崩溃. BugHD 新增功能 1.邮件告警 除了 We ...

  8. 更新日志 - fir.im 新版优化上线

    经过这段时间的用户反馈收集和新版本的功能调研,我们对 fir.im Rio 上传下载.应用管理再次做了调整优化.感谢之前内测用户的反馈与建议.目前 fir.im Rio 新版已正式上线,主要优化有以下 ...

  9. 更新日志 - BugHD iOS 客户端上线

    中秋.十一长假归来,"满血复活"的我们做了 fir.im 和 BugHD 的优化更新:) BugHD 新增功能 1.iOS 客户端上线 BugHD iOS 客户端上线了,你可以随时 ...

随机推荐

  1. python学习笔记(6)

    第6章 组合数据类型 组合类型的三种表达形式:集合.序列.字典 集合类型及操作 定义:集合是多个元素的无序组合 集合类型与数学中的集合概念一致 集合元素之间无序,每个元素唯一,不存在相同元素 集合元素 ...

  2. Oracle DBLINK的相关知识整理

    一.DBLINK(Database Link)概念 dblink,顾名思义就是数据库的链接.当我们要跨本地数据库访问另一个数据库中的表的数据时,在本地数据库中就必须要创建远程数据库的dblink,通过 ...

  3. 关于部署php遇到的坑

    业务突然要启动一个久不使用的PHP项目, 发现部署到centos7上后 各种报错 就是不行. 我怀疑是apache或者php问题 就重新安装 编译安装也试过就是不行. 只能按笨办法 在测试环境安装了a ...

  4. ztree设置节点checked,选中某节点等相关操作

    ztree设置节点checked,选中某节点等相关操作 1.根据id获取树的某个节点: var zTree = $.fn.zTree.getZTreeObj("mytree"); ...

  5. 总结css常用方法

    1.自定义滚动条 .test-1::-webkit-scrollbar {/*滚动条整体样式*/ width: 10px; /*高宽分别对应横竖滚动条的尺寸*/ height: 1px; } .tes ...

  6. 201771010126 王燕《面向对象程序设计(Java)》第十四周学习总结(测试程序11)

    实验十四  Swing图形界面组件 理论部分: 不使用布局管理器 有时候可能不想使用任何布局管理器,而只 是想把组件放在一个固定的位置上.下面是将一 个组件定位到某个绝对定位的步骤: 1)将布局管理器 ...

  7. js 单行注释

    不可以: var a = 1;//这是注释 应当: var a = 1; //这是注释 1

  8. Spring + SpringMVC + Mybatis项目中redis的配置及使用

    maven文件 <!-- redis --> <dependency> <groupId>redis.clients</groupId> <art ...

  9. NodeJS NPM 镜像使用方法

    每次npm的时候,走国外的镜像,非常的慢,可以配置一下 通过改变默认npm镜像代理服务,以下三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候不用重新配置. 通过config命令 ...

  10. RabbitMQ 消息顺序、消息幂等、消息重复、消息事务、集群

    1. 消息顺序 场景:比如下单操作,下单成功之后,会发布创建订单和扣减库存消息,但扣减库存消息执行会先于创建订单消息,也就说前者执行成功之后,才能执行后者. 不保证完全按照顺序消费,在 MQ 层面支持 ...