ctrl_c + ctrl_v 出来的四不像 -- 连接Mysql

Posted comsokey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ctrl_c + ctrl_v 出来的四不像 -- 连接Mysql相关的知识,希望对你有一定的参考价值。

一、引用

  mysql.Data.EntityFrameworkCore:8.0.12

 

二、连接字符串

  将所有系统连接字符串统一放在数据库中,应用中仅保留一个连接字符串,方便维护。

  底层使用了EF,所以只要根据配置动态生成数据库连接字符串,就可以随意切换数据库类型。(此功能预留,暂时懒得)

public interface IDbConnectionFormat
{
string GetConnection(DbConnection dbConnection);
DbContextOptions<DbConnectionContext> GetDbContextOptions(string context);
}
技术分享图片
 1  public class DbConnection
 2     {
 3         [System.ComponentModel.DataAnnotations.Key]
 4         public string Key { get; set; }
 5         
 6         public string Server { get; set; }
 7 
 8         public string Userid { get; set; }
 9 
10         public string Pwd { get; set; }
11 
12         public string Port { get; set; }
13 
14         public string Database { get; set; }
15 
16         public string Timeout { get; set; }
17 
18         public string MaximumPoolSize { get; set; }
19 
20         public string MinimumPoolSize { get; set; }
21     }
DbConnection  
技术分享图片
 1     public class MySqlConnectionFormat : IDbConnectionFormat
 2     {
 3         /// <summary>
 4         /// 默认的MySQL的链接字符串
 5         /// </summary>
 6         private const string DefaultMySqlConnectionString = "server={0};userid={1};pwd={2};port={3};database={4};SslMode=none;DefaultCommandTimeout={5};ConnectionTimeout={5};MaximumPoolSize={6};MinimumPoolSize={7};";
 7 
 8         
 9         public string GetConnection(DbConnection dbConnection)
10         {
11             return string.Format(
12                 DefaultMySqlConnectionString,
13                 dbConnection.Server,
14                 dbConnection.Userid,
15                 dbConnection.Pwd,
16                 dbConnection.Port,
17                 dbConnection.Database,
18                 dbConnection.Timeout,
19                 dbConnection.MaximumPoolSize,
20                 dbConnection.MinimumPoolSize);
21         }
22 
23         public DbContextOptions<DbConnectionContext> GetDbContextOptions(string context)
24         {
25             // 暂时不实现
26             throw new System.NotImplementedException();
27         }
28     }
MySqlConnectionFormat

 

 

三、Context

  这里本来不应该出现mysql字样的,应该根据配置反射或其他方法调用,但是偷懒就写死了。

技术分享图片
 1     public class DbConnectionContext : DbContext
 2     {
 3         public DbConnectionContext(DbContextOptions<DbConnectionContext> options)
 4             : base(options)
 5         {
 6              this.Database.EnsureCreated();
 7         }
 8 
 9         public DbConnectionContext(string connectionStirng)
10             : this(new DbContextOptionsBuilder<DbConnectionContext>().UseMySQL(connectionStirng).Options)
11         {
12         }
13 
14         public DbSet<DbConnection> DbConnection { get; set; }
15         public DbSet<RedisConnection> RedisConnection { get; set; }
16     }
DbConnectionContext

 

四、DAL,BLL,依赖注入啥的

  网上比较多,我也懒得贴了。

 

五、发发牢骚

  一入Procedure深似海... ...真的能不用就别用。虽然很好用,我也一直在用,我也很喜欢用,直到最近的一个客户说线上不允许使用(心中一万只羊驼狂奔)。。。

 

 

以上是关于ctrl_c + ctrl_v 出来的四不像 -- 连接Mysql的主要内容,如果未能解决你的问题,请参考以下文章

vim编辑Makefile如何使用Tab

c语言里,for循环不像Java有让我知道循环控制的范围,语言怎么判断循环控制的范围呀?

制作微信gif的在线生成网站都有哪些?

全栈老司机roadmap笔记-------- javascript

连载小马过河 —— 给萌新的 Angular 系列教程(序)

非移动端开发也需要知道的一点小知识,Dart语言四不像