asp.net core 2.1 连接mysql 使用操作数据库 code first 和Dbfirst
发布日期:2021-09-23 03:31:59 浏览次数:18 分类:技术文章

本文共 3464 字,大约阅读时间需要 11 分钟。

一 .环境配置及项目创建,

1.创建netcore Mvc项目 

2.安装好以下Nuget包:

MySql.Data.EntityFrameworkCore

MySql.Data

 

准备迁移的安装工具包 efcore 工具包 

或者使用NuGet Console 控制台添加

3、安装Nuget包

Install-package Microsoft.EntityFrameworkCoreInstall-package Microsoft.EntityFrameworkCore.SqlServer (此是使用mysql 连接的工具包此处用不到)

  Install-package MySql.Data.EntityFrameworkCore

  Install-package MySql.Data

二 . 相关代码及配置上下文

1.文件目录结构如下:

2 .先创建models里添加上下文BooksDBContext.cs

 public class BooksDBContext : DbContext    {        public DbSet
Books { get; set; }        public BooksDBContext(DbContextOptions
options ):base(options)        {        }        //protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)        //{        //    optionsBuilder.UseMySQL(@"Server=localhost;database=book;uid=root;pwd=123;SslMode=None");        //    base.OnConfiguring(optionsBuilder);        //}    }    [Table("books")]    public class Books {        public int Id { get; set; }        public string Name { get; set; }        public decimal  Price { get; set; }        public string Author { get; set; }          }

 3.配置文件 appsettings.json 中添加mysql 连接数据库字符串

 

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

 

4. Startup.cs 启动文件中 代码

    public void ConfigureServices(IServiceCollection services)        {            services.Configure
(options =>            {                // This lambda determines whether user consent for non-essential cookies is needed for a given request.                options.CheckConsentNeeded = context => true;                options.MinimumSameSitePolicy = SameSiteMode.None;                          });                       var connection = Configuration.GetConnectionString("MysqlConnection");            services.AddDbContext
(options => options.UseMySQL(connection));            services.AddMvc();                      services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);                   }

 

5.添加books控制器 

 

 public BooksDBContext _BooksDBContext;              public BooksController(BooksDBContext booksDBContext)        {            _BooksDBContext = booksDBContext;        }        public IActionResult Index()        {            //var books = _BooksDBContext.Books.ToList();            var book = new Books()            {                Name = "zhangsan1",                                Price = 24,                Author="sanmao",                           };            _BooksDBContext.Books.Add(book);            _BooksDBContext.SaveChanges();                //User user = new User() { Name = "Herry", CreateTime = DateTime.Now };                //context.User.Add(user);              return View();        }

 

执行之后查看数据 

以上是针对数据库中已存在表和库的操作 所以不需要迁移和创建目录 Migrations

如果 不存在表库需要创建的话 必须执行以下的命令 dotnet ef  migrations add InitialCreate 进行迁移之后 

 

相关迁移及执行命令:

           // 第一步codefirst 添加MySql.Data.EntityFrameworkCore NuGet包  

            // 迁移就是已有的数据库就不需要迁移也就没有Migrations文件夹 
            //Enable - Migrations 启用迁移

            //Add - Migration 为挂起的Model变化添加迁移脚本

            //Update - Database 将挂起的迁移更新到数据库

            //  mysql 的迁移好像原来的上面迁移命令不能用 只能使用下面的netcore cli 命令执行

            //Get - Migrations 获取已经应用的迁移
            // 想迁移文件夹创建的话就安装  Microsoft.EntityFrameworkCore  专门迁移 不然命令无效
            // 已有的没文件夹想创建库对应文件夹迁移 
            // Cmd 项目文件夹下dotnet ef  migrations add InitialCreate  已有的会更新不会删除
            // dotnet ef migrations remove 删除迁移,并确保正确重置快照
            //在命令窗口中,输入以下命令以创建数据库并在其中创建表。(在配置文件中修改库名称之后会自动创建新库和表)
            //console
            //复制
            //dotnet ef database update  

转载地址:https://blog.csdn.net/andy5520/article/details/91956126 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 解决方法
下一篇:未编译发布的asp.net core Mvc 部署源代码到IIS

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年03月27日 03时35分29秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

mysql整体会滚_滚mysql 2019-04-21
向mysql数据库中添加批量数据类型_使用JDBC在MySQL数据库中快速批量插入数据 2019-04-21
最全的mysql 5.7.13_最全的mysql 5.7.13 安装配置方法图文教程(linux) 强烈推荐! 2019-04-21
mssql连接mysql数据库文件_在本地 怎么远程连接MSSQL数据库 2019-04-21
mssql 远程无法连接mysql_解决SQLServer远程连接失败的问题 2019-04-21
linux mysql c++编程_Linux下进行MYSQL的C++编程起步手记 2019-04-21
Maria数据库怎么复制到mysql_MySQL、MariaDB数据库的AB复制配置过程 2019-04-21
mysql5.6 icp mrr bak_【mysql】关于ICP、MRR、BKA等特性 2019-04-21
mysql utf8跟utf8mb4_MySQL utf8 和 utf8mb4 的区别 2019-04-21
docker mysql开机自启动_Docker学习4-学会如何让容器开机自启服务【坑】 2019-04-21
在mysql中删除表正确的是什么_在MySQL中删除表的操作教程 2019-04-21
mysql有3个共同好友_共同好友mysql 2019-04-21
代理查询 mysql_查询数据库代理设置 2019-04-21
mysql dif_mysqldiff实现MySQL数据表比较 2019-04-21
mysql 允许其他主机访问权限_允许其他主机访问本机MySQL 2019-04-21
druid不能close mysql连接_alibaba druid mysql连接问题 2019-04-21
mysql 设置按天分表_MySQL 优化实战记录 2019-04-21
java连接mysql 不推荐_java连接mysql 2019-04-21
mysql数据库 quota_shell脚本抓取用户存储quota写道mysql并展现到grafana面板 2019-04-21
idea测试连接mysql报错08001_IDEA连接MySQL错误 2019-04-21