asp.net core mvc 2.2 配置EF+MYSQL

最新方法不需要第6步。MySql.Data.EntityFrameworkCore不需要安装,这个包有问题,操作数据库时会出问题。安装新版本Pomelo.EntityFrameworkCore.MySql。不需要添加映射类。

环境搭配好后直接Add-Migration 再Update-Database就会直接根据模型生成数据库相应表,但是有可能生成的string数据类型不对,它会在数据库生成longtext类型,可以在模型类里给属性加长度限制,或是生成SQL脚本,稍作修改后再找到数据库执行。

官方相关文档:https://docs.microsoft.com/zh-cn/ef/core/miscellaneous/cli/powershell#other-target-frameworks

1.新建MODEL和EF.DATAL类库 

2.添加MODEL类

3.在EF操作类库中安装需要的依赖库,并配置相互间的引用   这里我用的是mysql

Microsoft.EntityFrameworkCore

Microsoft.EntityFrameworkCore.Tools

Pomelo.EntityFrameworkCore.MySql

 

4.在EF操作类库中添加自己的dbcontext 如:

 public class MyContext:DbContext
    {
        public MyContext(DbContextOptions<MyContext> options) : base(options)
        {


        }
        public DbSet<MODEL.Users> Users { get; set; }

    }

5.在appsettings.json中配置SQL链接字符串 如:

"ConnectionStrings": { "MysqlConnection": "Data Source=localhost;Database=test;User ID=root;Password=12345;pooling=true;CharSet=utf8;port=3306;sslmode=none" }

6.在web层添加映射类

 public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<MyContext>
    {
        
        public MyContext CreateDbContext(string[] args)
        {
            IConfigurationRoot configuration = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json")
            .Build();   
            var builder = new DbContextOptionsBuilder<MyContext>();
            string constr = configuration.GetConnectionString("MysqlConnection");
            builder.UseMySQL(constr);
            return new MyContext(builder.Options);
          
        }
    }

7.打开包管理控制台输入操作相关命令,get-help entityframeworkcore可以获取到所有相关命令。

        Add-Migration                  Adds a new migration.

        Drop-Database                Drops the database.

        Get-DbContext                Gets information about a DbContext type.

        Remove-Migration           Removes the last migration.

        Scaffold-DbContext         Scaffolds a DbContext and entity types for a database.

        Script-Migration               Generates a SQL script from migrations.

        Update-Database            Updates the database to a specified migration.

8.在控制台的默认项目里选择ef的操作项目。输入Add-Migration添加一个迁移项。提示输入名字可随便输入

9.添加成功后,可以看到项目多出一个Migrations文件夹。这时再输入Script-Migration 获取数据库脚本。

10.复制脚本后稍作修改,只留下创建表和插入版本的sql语句,放到数据库执行后,便大功告成。之后如果有修改就使用Update-Database 来更新操作

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值