.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;" 
},

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

原文地址:https://www.cnblogs.com/souphm/p/10870059.html