ASP.NET EntityFrameworkCore MySQL 报错解决方案

------------恢复内容开始------------

  基于.NET5.0 根据网上 找到的一些入门学习教程,进行项目练习时,发现使用MySql.Data.EntityFrameworkCore 一直报错“Method 'Create' in type 'MySql.Data.EntityFrameworkCore.Query.Internal.MySQLSqlTranslatingExpressionVisitorFactory' from assembly 'MySql.Data.EntityFrameworkCore, Version=8.0.22.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' does not have an implementation.” --大意是“Create方法未被实现”。查了很多资料都没有很好的解决办法,最终尝试了一些网友提到的“ Pomelo.EntityFrameworkCore.MySql”。

      但是一开始使用也犯了一个低级错误,在Startup类 的ConfigureServices方法里注入context时,调用  options.UseMySql的方法参数传输错误,错误写法如下

 services.AddDbContext<AlanContext>(options =>
            {
                options.UseMySql(ServerVersion.AutoDetect(Configuration.GetConnectionString("AlanConnection")));
            });

  

导致一直报异常“A relational store has been configured without specifying either the DbConnection or connection string to use.”,最终仔细研究了报的错误信息,原来是未读取到连接字符串。后查看一些重载方法,进行修正如下:

 services.AddDbContext<AlanContext>(options =>
            {
                options.UseMySql(Configuration.GetConnectionString("AlanConnection"),
ServerVersion.AutoDetect(Configuration.GetConnectionString("AlanConnection"))); }); 

经修改后,可正常进行数据库操作。

------------恢复内容结束------------

原文地址:https://www.cnblogs.com/xiao-qian/p/14976537.html