打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
efcore mysql数据库codefirst生成

添加引用

  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.Tools
  • Pomelo.EntityFrameworkCore.MySql

创建实体对象

这里创建两个实体对象,顺便演示添加外键的效果 

public class TUser{    public int ID { get; set; }    public string UserName { get; set; }    public string Password { get; set; }    public ICollection<TRole> TRoles { get; set; }}
public class TRole{    public int ID { get; set; }    public string Name { get; set; }}

生成数据表时,属性“ID”默认成为自增的主键。

上述两个实体对象生成的数据表中,TRole中会包含TUser的外键,默认命名为TUserID。

创建上下文对象

public class MyDbContext:DbContext{    public MyDbContext(DbContextOptions<MyDbContext> options)         : base(options)    {    }     public DbSet<TUser> Users { get; set; }    public DbSet<TRole> Roles { get; set; }    protected override void OnModelCreating(ModelBuilder modelBuilder)    {        base.OnModelCreating(modelBuilder);         }}           

 

将根据此文件生成数据库,把想要生成数据表的实体类型以上面代码的形式作为属性MyDbContext为自定义的数据库上下文名称,由用户自己起名。其他代码可保持不变。

 

添加数据库连接字符串

在appsettings.json中加入连接字符串(下方绿底部分):

{  "Logging": {    "LogLevel": {      "Default": "Warning"    }  },  "AllowedHosts": "*",  "ConnectionStrings": {    "MyDbContext": "server=localhost;database=MyDb;user=myUsername;password=myPwd;"  }}

 

localhost替换为你的mysql地址,MyDb为将要生成数据表的数据库名称,myUsername为mysql的用户名,myPwd为mysql的密码。

添加数据上下文服务

在StartUp类的ConfigureServices方法中添加如下代码

services.AddDbContext<MyDbContext>(options =>     options.UseMySql(Configuration.GetConnectionString("MyDbContext")));

此代码将上面我们编写的MyDbContext这个类注册为数据上下文的服务,后续可通过DI方便地调用。Configuration.GetConnectionString(string name)获取appsettings.json中“ConnectionStrings”这部分中对应名称的字符串。

生成数据库

用vs2019的话,直接菜单栏“工具”-NuGet包管理器-程序包管理器控制台。

在打开的窗口中输入如下两个命令

  • Add-Migration InitialCreate
  • Update-Database

第一个命令会生成一个文件,记录所有我们代码编写对数据库的影响,生成的文件自动放入Migrations文件夹下,此文件夹也自动生成,第一个命令中的“Initial Create”用来命名此次数据库操作,可自己起名。

第二个命令将会根据第一个命令生成的迁移文件对数据库进行操作。

完成

此时,mysql数据库中应该就可以看到TUser和TRole两个数据表了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
EntityFramework.Extended扩展用法
在EntityFramework6中管理DbContext的正确方式
JNDI概述
如何将pcap文件导入MySQL数据库?
【原创】Spring Boot 集成Spring Data JPA的玩法
Access 数据库数据表导入到 mysql 数据库流程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服