修改ASP.NET Core身份验证(个人用户账户)所依赖数据库为MySQL

VS 2019基架的ASP.NET Core身份验证(个人用户账户)默认使用MSSQL,笔者项目数据库采用MySQL 5.7,所以需要将ASP.NET Core身份验证所依赖数据库修改为MySQL。

笔者开发环境为:

  • ASP.NET Core 3.1.1
  • EF Core 3.1.1
  • Pomelo.EntityFrameworkCore.MySql 3.1.1

继续阅读“修改ASP.NET Core身份验证(个人用户账户)所依赖数据库为MySQL”

ASP.NET core 3.1中Method ‘get_Info’ in type ‘MySql.Data.EntityFrameworkCore.Infraestructure.MySQLOptionsExtension’…解决方案

问题

笔者在项目中迁移数据库时出现Method ‘get_Info’ in type ‘MySql.Data.EntityFrameworkCore.Infraestructure.MySQLOptionsExtension’ from assembly ‘MySql.Data.EntityFrameworkCore, Version=8.0.19.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d’ does not have an implementation.异常,导致数据库迁移失败。

继续阅读“ASP.NET core 3.1中Method ‘get_Info’ in type ‘MySql.Data.EntityFrameworkCore.Infraestructure.MySQLOptionsExtension’…解决方案”

Entity Framework Core 3.0 笔记

  1. 默认情况下,EF 将会将名为 ID 或 classnameID 的属性解析为主键。
  2. 如果导航属性可以具有多个实体 (如多对多或一对多关系),那么导航属性的类型必须是可以添加、 删除和更新条目的容器,如 ICollection<T>。 你可以指定 ICollection<T> 或实现该接口类型,如 List<T> 或 HashSet<T>。 如果指定 ICollection<T>,EF在默认情况下创建 HashSet<T> 集合。
  3. 如果一个属性名为 <navigation property name><primary key property name>,Entity Framework 就会将这个属性解析为外键属性(例如, Student 实体的主键是ID, Student 是Enrollment的导航属性所以Enrollment实体中 StudentID 会被解析为外键)。 此外还可以将需要解析为外键的属性命名为 <primary key property name> (例如,CourseID 由于 是Course 实体的主键,所以 CourseID 也被解析为外键)。
  4. 可以通过重写DbContext.OnModelCreating方法,自定义模型创建过程,例如指定表名。