DotNetCore跨平台~EFCore连接Mysql的方式

MySql.Data.MySqlClient.MySqlException: The host localhost does not support SSL connections.

    public partial class MySqlERPContext : DbContext, IERPContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseMySQL(@"Server=localhost;database=ef;uid=root;pwd=root;SslMode=None");
            base.OnConfiguring(optionsBuilder);
        }
        public DbSet<system_users> system_users { get; set; }
        public DbSet<User> Users { set; get; }
    }

对于mysql的上下文和应用sql没怎么两样,要求小心的是要拉长的SSL的否定,不然还要会有拾分出来

作业实现

丰盛模块扩充

       ModuleManager.Resolve<IRepository<User>>().Insert(new Api.User
            {
                Name = "two"
            });

回到目录

    /// <summary>
    /// 对于当前项目的模块化扩展
    /// </summary>
    public static class ModuleExtensions
    {
        /// <summary>
        /// 注册一个数据仓库
        /// </summary>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public static ModuleManager UseErpRepository(this ModuleManager configuration)
        {
            configuration.RegisterGenericModule(
                typeof(IRepository<>),
                typeof(ERPRepository<>));
            return configuration;
        }
        /// <summary>
        /// 注册一个数据上下文
        /// </summary>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public static ModuleManager UseErpContext(this ModuleManager configuration)
        {
            configuration.RegisterModule<IERPContext, MySqlERPContext>();
            return configuration;
        }
    }

福寿康宁三番五次基础设备里的EFRepository就足以了,我们需求为仓库储存传递七个多少上下文进来,就是地点定义的Mysql的上下文对象,那样您的储存就足以操作那一个上下文了.

咱俩基础设备里有大器晚成对早已完毕的职能,大家会做成扩充方法,方便以作业种类的运用,而和作业相关的对象,如专门的学业仓库储存,业务上下文能够在事情种类增添扩充,方法中期的流入职业,常常的作业扩充代码如下

这么我们在dotnet core里通过efcore去操作mysql数据库就变成了,供给潜心的是,在mysql连接串中,必要求增加SslMode=None以此性情,不然会启用ssl链接!

  public class ERPRepository<T> : EFRepository<T> where T : class
    {
        public ERPRepository() : base(new MySqlERPContext()) { }
    }

mysql项指标信任包

回去目录

  1. mysql项指标依附包
  2. 数据上下文和再三再四串
  3. 数码存款和储蓄
  4. 增加模块扩张
  5. 业务层注入
  6. 事务实现

模块的扩张达成之后,就是在作业系统最初化时注入它们,完结哪类艺术就去登记哪个地方,日常在global或然startup里去落实注入成效.

业务层注入

        //注册模块
            ModuleManager.Create()
                         .UseAutofac()
                         .UseESBIoC()
                         .UseErpContext()
                         .UseErpRepository();

能够一贯从模块里把相应的囤积抽出来,然后施行相应的curd操作就可以

  1. Microsoft.EntityFrameworkCore
  2. MySql.Data.EntityFrameworkCore

数量上下文和一连串

多少存款和储蓄

谢谢各位阅读!

在.net frameworks的ef里一个劲mysql大家曾经测量试验通过了,而在dotnet core里的efCore上去连接mysql大家须要测量检验一下,而且在测量检验进度中冒出了一些问题,当然最后也是消除了,下边总结一下,分享给大家!

本文由开元棋牌发布于数据库,转载请注明出处:DotNetCore跨平台~EFCore连接Mysql的方式

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。