C# 之 .net core -- EF code first连接Mysql数据库
回过头来看看,我之前写的有些复杂。推荐大家看下这个 https://www.cnblogs.com/lyps/archive/2018/11/06/9916167.html 博客。
(为什么这么写,我记不太清了。大致步骤相同,不过我推荐的这个比我写的好。愿:在程序的路上多多学习,共同进步!奥利给!!!)
一、在Models 新建两个数据库类
这个是数据库需要生成的类基础
public class User
{
[Key]
public string ID { get; set; }
[MaxLength()]
public string Name { get; set; } public int Age { get; set; } [MaxLength()]
public string Phone { get; set; } public string DepartmentID { get; set; } [ForeignKey("DepartmentID")]
public Department Department { get; set; }
} public class Department
{
[Key]
public string ID { get; set; }
[MaxLength()]
public string Name { get; set; }
}
二、新建文件夹MysqlDbContext,然后新建类MysqlContext (注意文件夹的名字,不要跟类名一样)
然后建立表与数据库关系映射
public class MysqlContext : DbContext
{
public MysqlContext(DbContextOptions<MysqlContext> options) : base(options)
{ }
//建立表与模型的映射关系
public DbSet<User> User { get; set; }
public DbSet<Department> Department { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}
三、添加依赖项
依赖项右键 》》管理NuGet 包》》浏览
搜索这两个,注意安装的 版本号 ,是core 2.x的 你安装 3.x 会报错
我安装的是2.2.6
Microsoft.EntityFrameworkCore.Tools
Pomelo.EntityFrameworkCore.MySql

不要在乎那个安装的颜色,第一个安装之前是浅蓝,安装之后就紫色了。
四、添加 Util 文件夹 ,添加AppConfigurtaionServices类
这个是创建生成的数据库文件的类
public class AppConfigurtaionServices
{
public static IConfiguration Configuration { get; set; }
static AppConfigurtaionServices()
{
//ReloadOnChange = true 当appsettings.json被修改时重新加载
Configuration = new ConfigurationBuilder()
.Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })
.Build();
}
}
还有这种写法(我不是太懂这两个有什么区别,知道的大哥可以给我留言,万分感谢)
public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<MysqlDbContext>
{
public MysqlDbContext CreateDbContext(string[] args)
{
var configBuilder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build(); var builder = new DbContextOptionsBuilder<MysqlDbContext>();
builder.UseMySql(configBuilder.GetConnectionString("DefaultConnection"));
return new MysqlDbContext(builder.Options); }
}
这种写法需要引用(注意版本)
Microsoft.Extensions.Configuration.FileExtensions
Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Configuration
Pomelo.EntityFrameworkCore.MySql
五、在Startup 的ConfigureServices下添加
services.AddDbContext<MysqlContext>(options =>
options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));

六、在appsettings.json 添加数据库连接
"ConnectionStrings": {
"DefaultConnection": "Data Source =数据库服务器地址(127.127.127.127);port=3306;Initial Catalog=数据库名;user id=数据库连接名;password=密码;Character Set=utf8;sslmode=none"
},

七、最后一步
执行命令找到程序应用控制台
先输入 Add-Migration init 回车
然后 Update-Database init 回车
最后在数据看一下

最后在补充一下,如果要添加或者修改数据库直接修改Models的类,然后执行Update-Database V1.1(这个v1.1是版本号),就可以了,不要直接改数据库。
多说一句,如果是新建的类库里面放的话,默认执行的是启动项,也就是你的web项目,要把默认的改成你的类库
结束。
目录如下:

C# 之 .net core -- EF code first连接Mysql数据库的更多相关文章
- EntityFramework 6.0< Code First > 连接 Mysql数据库(转)
http://blog.csdn.net/kmguo/article/details/19650299 网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多 ...
- EntityFramework 6.0< Code First > 连接 Mysql数据库
网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多了.找了很久,总算是配置好了,现在分享一下. 一,安装: 1.开发环境: VS2013与EF6 ...
- 转载:EntityFramework 6.0< Code First > 连接 Mysql数据库
转载自:http://blog.csdn.net/kmguo/article/details/19650299 网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转 ...
- EF Code First连接现有数据库
作为一个初入学习.net MVC4 的新手,想写一写今天碰到的问题,做一个总结. 首先我想利用EF Code First来连接我现有数据库,而不是通过EF Code First来自动生成数据库和表. ...
- EF Code First 连接MySql
看了很多文章,尝试了很多次总是进行不下去,整理一下,以便日后查看. 1.创建ASP.NET MVC项目(EFCodeFirst) 1.1.右键点击引用选择管理NuGet程序包下载MySql.Data. ...
- .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程
本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...
- asp.net core EF code first
以连接mysql数据库为例 一 安装组件 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Relational Microsof ...
- 使用EF CodeFirst连接MySql数据库
如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017.Win10.MySql5.x 前言 一般在EF中,默认是使用SqlServ ...
- 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表
创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...
随机推荐
- logstash1 - kafka - logstash2 - elasticsearch - kibana
0.拓扑图 参考:https://www.cnblogs.com/JetpropelledSnake/p/10057545.html 1.logstash的配置 [root@VM_0_4_centos ...
- mysql的binlog安全删除的一种方法
指定过期天数(expire_logs_days) ---适用于单机版mysql! 该参数为全局可动态调整参数,默认值为0,即关闭,取值范围0-99. 1.3.1 参数的查看: mysql> ...
- MySQL添加、修改、撤销用户数据库操作权限的一些记录
查看MYSQL数据库中所有用户 SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; ...
- Spring实例化Bean三种方法:构造器、静态工厂、实例工厂
Spring中Bean相当于java中的类,可以通过xml文件对bean进行配置和管理. 一.Bean的实例化: 构造器实例化.静态工厂实例化.实例工厂方式实例化. 目录: 构造器实例化: xml配置 ...
- 新拉的项目在idea中启动时报如下错误:org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
今天真的是很苦恼,之前启动项目没有任何问题,今天突然启动时给我报了如下一个错误. 详细报错信息: org.apache.catalina.core.ContainerBase.addChildInte ...
- 大话数据结构(8) 串的模式匹配算法(朴素、KMP、改进算法)
--喜欢记得关注我哟[shoshana]-- 目录 1.朴素的模式匹配算法2.KMP模式匹配算法 2.1 KMP模式匹配算法的主体思路 2.2 next[]的定义与求解 2.3 KMP完整代码 2.4 ...
- Kubernetes---资源控制器
⒈引用 Pod的分类 自助式pod 只要pod退出了,此类型的pod不会被重建,该pod没有管理者,死亡后不会被拉起. 控制器管理的pod[生产环境中大多数都是选择控制器去管理pod] 在控制器的生命 ...
- Spring4学习回顾之路11-AOP
Srping的核心除了之前讲到的IOC/DI之外,还有一个AOP(Aspect Oriented Programming:面向切面编程):通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 ...
- 剑指offer16:输入两个单调递增的链表,合成后的链表满足单调不减规则。
1 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 2 思路与方法 迭代法:两个链表中较小的头结点作为合并后头结点,之后依次合并两个链表中较小的 ...
- # localhost 、217.0.0.1 、本机IP
localhost .217.0.0.1 .本机IP localhost是一个域名,性质跟 "www.baidu.com" 差不多,指向127.0.0.1这个IP地址,在windo ...