Asp.net Core深入一:数据库访问(Mysql为例)

一.数据库概述

1.一个DBContext操纵一个数据库

2.DbContext下的一个DbSet<Model类>关联一个表,但是也可以只写一个表,DbContext可以关联其他的表。

3.使用Dbcontext.Database.EnsureCreated();可以根据自动创建数据库,以及相关的表。指定哪个数据库软件是根据appsetting下的DefaultConnectString来决定,也许是SqlSever或者是MySql,但是需要对应的dll支持,见5。生成哪些表是根据DbSet<Model类>的属性关联成员来进行。

4.迁移命令,在程序包管理控制台输入Add-Migration,将会在Migration下生成一个继承于Migration的迁移类;再次输入update-database Migration类名,便可以根据该类建立更新数据库。

5.使用相关的数据库,需要对应的dll包,Mysql下有MySQL.Data.EntityFrameworkCore(官方)和Pomelo.EntityFrameworkCore.MySql,一般情况下使用这两个中的一个。

6.efcore操作mysql,出现System.InvalidOperationException:“No coercion operator is defined between types 'System.Int16' and 'System.Boolean'.”这个恶心的问题,只需要把EF的依赖换成Pomelo.EntityFrameworkCore.MySql 库即可解决,貌似只能在显式情况下

猜你喜欢

转载自www.cnblogs.com/xiaoahui/p/11899488.html