时间:2021-07-01 10:21:17 帮助过:55人阅读
BenchmarkDotNet=v0.10.14, OS=Windows 10.0.16299.431 (1709/FallCreatorsUpdate/Redstone3) Intel Core i7-4710MQ CPU 2.50GHz (Haswell), 1 CPU, 8 logical and 4 physical cores Frequency=2435768 Hz, Resolution=410.5481 ns, Timer=TSC .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 | Mean | Error | StdDev | Rank | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|---|
SmartSql | SmartSqlBenchmarks | Query | 101.6 ms | 0.2226 ms | 0.1738 ms | 1 | 2437.5000 | 1062.5000 | 375.0000 | 13.37 MB |
Native | NativeBenchmarks | Query_IsDBNull_GetValue | 101.7 ms | 0.4101 ms | 0.3635 ms | 1 | 2437.5000 | 1062.5000 | 375.0000 | 13.37 MB |
Dapper | DapperBenchmarks | Query | 104.4 ms | 1.3195 ms | 1.2342 ms | 2 | 3375.0000 | 1375.0000 | 625.0000 | 17.64 MB |
SmartSqlDapper | SmartSqlDapperBenchmarks | Query | 105.7 ms | 1.1697 ms | 1.0941 ms | 3 | 3750.0000 | 1437.5000 | 625.0000 | 19.47 MB |
Native | NativeBenchmarks | Query_GetValue_DbNull | 107.4 ms | 1.0710 ms | 1.0018 ms | 4 | 3062.5000 | 1187.5000 | 500.0000 | 16.42 MB |
SqlSugar | SqlSugarBenchmarks | Query | 108.9 ms | 0.4048 ms | 0.3787 ms | 5 | 2375.0000 | 1000.0000 | 312.5000 | 13.09 MB |
EF | EFBenchmarks | SqlQuery | 110.9 ms | 0.6922 ms | 0.6475 ms | 6 | 11062.5000 | - | - | 34.13 MB |
Chloe | ChloeBenchmarks | Query | 14.5 ms | 2.2600 ms | 5.3711 ms | 7 | 2375.0000 | 1000.0000 | 312.5000 | 13.07 MB |
EF | EFBenchmarks | Query_NoTracking | 126.4 ms | 1.3197 ms | 1.2344 ms | 8 | 5937.5000 | 2250.0000 | 1062.5000 | 30.16 MB |
EF | EFBenchmarks | SqlQuery_NoTracking | 148.6 ms | 0.8290 ms | 0.7755 ms | 9 | 7437.5000 | 2937.5000 | 1250.0000 | 37.79 MB |
Install-Package SmartSql
ISmartSqlMapper SqlMapper = MapperContainer.Instance.GetSqlMapper(); SqlMapper.Query<T_Test>(new RequestContext { Scope = "T_Test", SqlId = "GetList", Request = new { Ids = new long[] { 1, 2, 3, 4 } } });
try { ISmartSqlMapper SqlMapper = MapperContainer.Instance.GetSqlMapper(); SqlMapper.BeginTransaction(); //BizCode SqlMapper.CommitTransaction(); } catch (Exception ex) { SqlMapper.RollbackTransaction(); throw ex; }
Install-Package SmartSql.DIExtension
services.AddSmartSql(); services.AddRepositoryFactory(); services.AddRepositoryFromAssembly((options) => { options.AssemblyString = "SmartSql.Starter.Repository"; });
/// <summary> /// 属性可选: [SqlMap(Scope = "User")] ,不设置 则默认 Scope 模板:I{Scope}Repository /// 可传入自定义模板 /// RepositoryBuilder builder=new RepositoryBuilder("I{Scope}DAL"); /// </summary> public interface IUserRepository { /// <summary> /// 属性可选 [Statement(Execute = ExecuteBehavior.Auto,Id = "Query")] /// 默认 Execute:Auto ,自动判断 执行类型 /// 默认 Id : 方法名 /// </summary> /// <param name="reqParams"></param> /// <returns></returns> IEnumerable<User> Query(object reqParams); long GetRecord(object reqParams); User Get(object reqParams); long Insert(User entity); int Update(User entity); int Delete(User enttiy); }
public class UserService { private readonly ISmartSqlMapper _smartSqlMapper; private readonly IUserRepository _userRepository; public UserService( ISmartSqlMapper smartSqlMapper , IUserRepository userRepository) { _smartSqlMapper = smartSqlMapper; _userRepository = userRepository; } public long Add(AddRequest request) { int existsNum = _userRepository.Exists(new { request.UserName }); if (existsNum > 0) { throw new ArgumentException($"{nameof(request.UserName)} has already existed!"); } return _userRepository.Add(new Entitiy.User { UserName = request.UserName, Password = request.Password, Status = Entitiy.UserStatus.Ok, CreationTime = DateTime.Now, }); } public void UseTransaction() { try { _smartSqlMapper.BeginTransaction(); //Biz(); _smartSqlMapper.CommitTransaction(); } catch (Exception ex) { _smartSqlMapper.RollbackTransaction(); throw ex; } } }
services.AddSmartSql(); services.AddRepositoryFactory(); services.AddRepositoryFromAssembly((options) => { options.AssemblyString = "SmartSql.Starter.Repository"; });--------------------- 作者:Ahoo 来源:CSDN 原文:https://blog.csdn.net/tsgx_1989/article/details/69055089 版权声明:本文为博主原创文章,转载请附上博文链接!
SmartSql简介
标签:work ade long dde timer split row tracking params