摘要:        
为了提高性能,需要对mysql批量插入进行一次性对对比,下面是测试完后的结果,存档以备后查。 1. 测试结果 记录条数 循环插入,一个事务提交insert00(ms) 批量函数插入 insert01(ms) 一个inser多个values insert02 (ms) 多个insert拼接 inser    阅读全文
        
            posted @ 2022-02-08 20:32
桂素伟
阅读(202)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
异步流是C#8.0出来的特性,可以让流式数据以尽快分批的方式返回,而不像之前那样,当全部获取到数据后,再返回。 下面的例子的场景有点特殊,查询一个较多的数据,为了查询不给数据带来很大压力,做成一个分批从数据查询回数据,组装成一个整理List返回。 如果是之前的做法,就需要等所有的数据返回后,累加到一    阅读全文
        
            posted @ 2022-02-08 20:21
桂素伟
阅读(45)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
属性——Property,由get,set访问器组成,这是C#使用度比较高的类成员。今天分几组对比测试,来看一下使用Property的性能。 被测试对象: public class MyClass { private string _myProperty1 = DateTime.Now.ToStri    阅读全文
        
            posted @ 2022-02-07 20:36
桂素伟
阅读(156)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
BenchmarkDotNet是一款开源的性能测试工具,使用方式非常简单,特别是对实现同一功能的两种方式,犹豫不决时,可以使用它进行个对比。 比如我们比较ADO.NET方式查询数据库表,和用Dapper方式获取数据为表,只需要在两个方法上增加 [Benchmark]就可以了,然后调用var summ    阅读全文
        
            posted @ 2022-02-07 20:23
桂素伟
阅读(142)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
C#里,foreach可以算是个高一等级的循环,因为想要使用foreach必须实现IEnumberable,然后还需要在这个接口的唯一方法中,用yield return返回元素,才能达到foreach的循环效果。 class MyList : IEnumerable { string[] arr =    阅读全文
        
            posted @ 2022-02-07 20:20
桂素伟
阅读(50)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
using和IDisposable是组合使用的,像这种一个关键字和一个接口的组合,在C#中很少见的,using这个关键字,也就因为IDisposable多了一个身份。 其实很多人都知道IDisposable,有一个方法void Dispose(),通常是用来释放一些必须释放的资源时,要实现这个接口,    阅读全文
        
            posted @ 2022-02-05 15:39
桂素伟
阅读(102)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
Moq在.net中比较出名的mock框架,NSubstitute也是属于这类框架,使用方式也如出一辙,是通过实现子类来达到mock的效果。下面的测试方法都是按照 UnitTest的三板斧Arrange Act Assert来展开的,代码具体如下。 using Microsoft.VisualBasi    阅读全文
        
            posted @ 2022-02-05 15:35
桂素伟
阅读(96)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
创建一个控制台项目,.net5或.net6(Preview),在Program.cs中写如下代码,F5,能顺利跑起来,没有Program类,没有Main函数。 这是C#9带来的顶级语句的功能。 System.Console.WriteLine("你好,C#"); 其实这里的Program类和Main    阅读全文
        
            posted @ 2022-02-05 15:31
桂素伟
阅读(102)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
如果想在一个项目中,用DapperPlus支持多种数据库该怎么做? 在《让Dapper支持Mock》中我们定义了DapperPlus,可以基于这个类,实现两个子类:MySqlDapperPlus,MsSqlDapperPls,在这两个子类的构造中适配对应的数据库类型,从注放容器中,获取IDbConn    阅读全文
        
            posted @ 2022-02-05 15:26
桂素伟
阅读(85)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
在上一篇说了封闭Dapper扩展方法为一个接口来支持Mock,接下来看看如何实现读写分离。 其实定义两个接口,一个用来实现读,一个用来实现写。在读的接口里只有Query的方法,在写的接口里实现Query和Execute全量(通读写的库也是支持读的,有的场景还是必须在写库里读,因为写库往读库中同步时是    阅读全文
        
            posted @ 2022-02-05 15:20
桂素伟
阅读(112)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
Dapper,在.net的ORM中占有一席之地,用法简单,灵活,使用如下。但也带来一个问题,就是在单元测试时,Mock比较难办。 public List<Goods> GetAllGoods() { using var con = new SqlConnection(); var sql = "se    阅读全文
        
            posted @ 2022-02-05 15:14
桂素伟
阅读(120)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
我们知道,在c#中,如果两个类型没有继承关系 ,是不能相互值赋的,但有两个关键字implicit和explicit,可以让 Date date = DateTime.Now这样的赋值成为可能。 注:c#是没有Date类型的,但DateTime有Date属性 DateTime.Date,但这个属性本质    阅读全文
        
            posted @ 2022-02-05 15:10
桂素伟
阅读(50)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
当我们用nuget引用三方库时,在类型,或类型成员上会有注释,如下图,是MySql官方包,command的ExecuteNonQuery的注释 我们自己写一个类库项目CommentsLibrary,给类,构造函数,方法添加xml注释,然后生成 using System; namespace Comm    阅读全文
        
            posted @ 2022-02-05 15:02
桂素伟
阅读(44)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
前情提要:因为项目特点,需要在自己的服务器上集成测试,而不是用github的DevOpt体系;再有就是服务器是windows的;项目仓库在github上;并且项目是asp.net core的项目;开发人员一枚。以前的做法就是发布后,把执行码复制在服务器上启动;后来就是在服务器写了个bat,运行bat    阅读全文
        
            posted @ 2022-02-05 14:55
桂素伟
阅读(62)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
在使用visual studio开发过程中,有时发现在“错误列表”中的一些提示,大体分为错误、警告、消息,错误是我们必须处理的,否则代码通过编译,警告有时常常会被忽略(也许你是细心人,会处理掉),有时,这样的忽略会为应用埋下安全的隐患。 其实这些提示,是来自微软的IDE的Security Code     阅读全文
        
            posted @ 2022-02-05 14:49
桂素伟
阅读(295)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
大部分主流语言都支持web框架,并且实现起来相对轻便,简捷,比如: go的gin包 package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/ping", func(c *gin.C    阅读全文
        
            posted @ 2022-02-04 17:06
桂素伟
阅读(127)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
随着撸码的时间增加,码感也会加强,今天看一个编码直觉案例吧! 案例: 需求:把查询到的数据列表生成csv文件 nuget包:CsvHelper 数据实体类: /// <summary> /// 商品 /// </summary> public class Goods { /// <summary>     阅读全文
        
            posted @ 2022-02-04 17:01
桂素伟
阅读(161)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
new new用三种场景,最常用的实例化,泛型参数时的实例化约束,第三种是显式隐藏继承成员。 using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text    阅读全文
        
            posted @ 2022-02-04 16:56
桂素伟
阅读(37)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
本例使用的规则引擎包是RulesEngine,关于RulesEngine的介绍,请自行补充,这里只是一个极简单使用场景。 例子大体就是用户有一些优惠券,系统会根据用户订单情况,筛选可以使用的优惠券供用户选择,用户选择后会计算出优惠后金额。 代码相对简单,就不一一介绍了,奉上service中的代码:     阅读全文
        
            posted @ 2022-02-04 16:50
桂素伟
阅读(202)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
winform是一老技术,感觉都有点掉牙了(我近20年前就是从winform开始接触.net的);blazor,是微软技术圈里的新宠,正在被悉心照顾。当这一老一少的技术碰撞后,会有什么火花? .net v6.0.0-preview.3,给winform和blazor结合带来了前提。https://g    阅读全文
        
            posted @ 2022-02-04 16:45
桂素伟
阅读(733)
评论(0)
推荐(0)
        
        
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号