.Net EntityFramework连接Mysql连接池配置

Posted シ゛甜虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net EntityFramework连接Mysql连接池配置相关的知识,希望对你有一定的参考价值。

       微软的Ado.Net支持连接池,.EntityFrameworkCore.mysql同样支持连接池,并且默认也是开启连接池的,EntityFramework的使用教程请查看我的另一篇文章

EntityFramework基本使用_シ❤゛甜虾的个人博客-CSDN博客讲到EntityFramework,就先讲下数据分层VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。DO(Domain Object):领域对象,就是从现实世界中抽https://blog.csdn.net/g313105910/article/details/119828640

.Net Entity Framework连接MySql_シ❤゛甜虾的个人博客-CSDN博客一、Nuget安装Entity Framework二、基本代码编写创建Models文件夹,然后在创建Table文件夹,在Table中创建表的实体类然后在创建DataContext类,内容如下using EdgeService.DbService.Models.Table;using Microsoft.EntityFrameworkCore;namespace EdgeService.DbService.Models public class DataCon...https://blog.csdn.net/g313105910/article/details/120486869

EntityFramework多线程安全和连接池问题探究_シ❤゛甜虾的个人博客-CSDN博客创建多个DataContext.AddDbContext<DataContext>(optionsBuilder => optionsBuilder.UseMySql(ConnectionString, new MySqlServerVersion(new Version(5, 7, 0)))).AddDbContext<EquipmentContext>(optionsBuilder => optionsBuilder.UseMySql(Connection..https://blog.csdn.net/g313105910/article/details/121228832

sql设置

启用连接池

string connStringUsePool = "server=.;database=master;uid=sa;pwd=123;pooling=true;connection lifetime=0;min pool size = 1;max pool size=500";

不启用连接池

string connStringUnUsePool = "server=.;database=master;uid=sa;pwd=123;pooling=false";

mysql设置

启用连接池

string connStringUsePool = "server=127.0.0.1;uid=root;pwd=xxx;database=databasetest;pooling=true;connectionlifetime=5;minpoolsize=1;maxpoolsize=500;"

不启用连接池

"server=127.0.0.1;uid=root;pwd=xxx;database=databasetest;pooling=false;"

mysql 查询连接数

show processlist

关闭线程池

开启连接池后

如果连接池不够用了,会支持抛出异常Too many connections太多的连接

SelectThread:4,Exception:System.InvalidOperationException: An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure()' to the 'UseMySql' call.
 ---> MySqlConnector.MySqlException (0x80004005): Too many connections
   at MySqlConnector.Core.ServerSession.ConnectAsync(ConnectionSettings cs, Int32 startTickCount, ILoadBalancer loadBalancer, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/ServerSession.cs:line 425
   at MySqlConnector.MySqlConnection.CreateSessionAsync(ConnectionPool pool, Int32 startTickCount, Nullable`1 ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlConnection.cs:line 884
   at MySqlConnector.MySqlConnection.OpenAsync(Nullable`1 ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlConnection.cs:line 414

以上是关于.Net EntityFramework连接Mysql连接池配置的主要内容,如果未能解决你的问题,请参考以下文章

U2 Toolkit for .NET - 实体框架示例“EntityFramework_CodeFirst2”未连接

EntityFramework 6 Alpha 2 & MySQL 连接器/NET 6.6.4

关于EntityFramework连接Oracle的详细教程

Entity Framework 6 设置连接字符串运行时

.Net Core005EntityFramework的使用

.Net Core005EntityFramework的使用