码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-10-04 12:55:52      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:port   etc   maximum   inter   eve   RoCE   配置   pwd   imu   

一、引用

  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

标签:port   etc   maximum   inter   eve   RoCE   配置   pwd   imu   

原文地址:https://www.cnblogs.com/comsokey/p/C_V_2.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!