.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;"
},
到此就能正常使用数据库了。