zoukankan      html  css  js  c++  java
  • .NET CORE 下 MariaDB DBfirst 生成model层 并配置连接参数

    1、首先新建一个类库,然后通过NuGet安装下面三个包

    2、然后在程序包管理器控制台中运行以下代码(ps:记得默认项目选择刚才新建的项目,同时设置为启动项)

    server 是服务器地址
    database 是数据库名
    1 Scaffold-DbContext "server=localhost;userid=root;pwd=****;port=3306;database=sprotweb;sslmode=none;" Pomelo.EntityFrameworkCore.MySql  
    -OutputDir Models 加上这个指定生成文件夹

    ps:如果数据库表变动,需要重新生成model,在上面语句中末尾加上 -Force 即可覆盖model 

    附上官方链接:https://docs.microsoft.com/zh-cn/ef/core/miscellaneous/cli/powershell

     3、如果你已经有数据库表的话,接下系统会自动生成对应表的Model层

    其中XXXContext中OnConfiguring方法,写有数据库连接信息。

    一般开发中信息存储在json配置文件中,因此这里我们public一个字段 ConnectionString

    public static string ConnectionString;

    同时修改源代码中的连接代码

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                if (!optionsBuilder.IsConfigured)
                {
                    //#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
                    //optionsBuilder.UseMySql("server=localhost;userid=root;pwd=qazpl2010;port=3306;database=sprotweb;sslmode=none;");      
              optionsBuilder.UseMySql(ConnectionString);
    } }

    (这里比较麻烦的就是每次数据库有更改,这里都需要重写一次) 有更好的方法欢迎留言探讨。

    ok  到此model层的设置就已经完成 

    4、在其他项目中 如果引用此model的话  在Startup中注入

    public void ConfigureServices(IServiceCollection services)
            {            
                services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            //数据库连接代码
            var connection = Configuration.GetConnectionString("mysql");
            services.AddDbContext<sprotwebContext>(options => options.UseMySql(connection));

            }

    json配置文件 增加配置信息  如下

    "ConnectionStrings": {
        "mysql": "server=localhost;userid=root;pwd=****;port=3306;database=sprotweb;sslmode=none;" 
    },

    到此就能正常使用数据库了。

  • 相关阅读:
    JavaAndroid项目结构
    Python 常用系统模块整理
    Python 部分系统类的常用方法整理
    xpath语法笔记
    xml笔记
    Python 内置函数笔记
    剑指Offer-二叉搜索树的第k个结点
    Java中Set集合是如何实现添加元素保证不重复的?
    剑指Offer-链表中倒数第k个结点
    Leetcode#1.Two Sum(两数之和)
  • 原文地址:https://www.cnblogs.com/souphm/p/10870059.html
Copyright © 2011-2022 走看看