Hugo, miembro de este staff, nos ha hecho el favor de crear este escrito ya que controla muy bien dicho tema.
Solución:
Necesitas
using Microsoft.EntityFrameworkCore;
using MySQL.Data.EntityFrameworkCore.Extensions;
Oracle no cumple con las prácticas estándar al usar la inyección de dependencia, por lo que todo es un poco diferente. La práctica estándar es poner los métodos de extensión para Inyección de Dependencia en Microsoft.Extensions.DependencyInjection
espacio de nombres, que se incluye en la mayoría de los proyectos de aplicaciones ASP.NET Core para que el método esté disponible automáticamente cuando se importa un paquete.
Futuros lectores.
Si está utilizando “MySql.Data.EntityFrameworkCore”:
Tengo esto: (nota, el CASO de ninguna palabra/frase que contiene “MySql“.)
En mi capa superior (.exe generalmente) donde hago la configuración DI.
csproj (capa superior)
archivo cs con DI
using Microsoft.EntityFrameworkCore;
using MySql.Data.EntityFrameworkCore;
///where servColl is IServiceCollection
servColl.AddDbContext(options => options.UseMySQL("server=localhost;database=library;user=mysqlschema;password=mypassword"));
NOTA arriba del CASO de Usar MySQL. Por qué el espacio de nombres es “MySql” y el “uso” es “UseMySQL” (??)… vale la pena señalar esta inconsistencia (con el cAsE) si te estás golpeando la cabeza contra la pantalla. 🙂
y en la “capa inferior” (mi “capa de datos”) donde codifico a EntityFramework Core (pero no a ningún concreto específico)
csproj (capa de datos) (tenga en cuenta las versiones 2.1 …….)
======================================
SI está utilizando Pomelo.EntityFrameworkCore.MySql. (Lo cual personalmente creo que es una mejor opción).
En mi capa superior (.exe generalmente) donde hago la configuración DI.
csproj (capa superior)
archivo cs con DI
using Microsoft.EntityFrameworkCore;
using Pomelo.EntityFrameworkCore.MySql.Infrastructure;
///where servColl is IServiceCollection
servColl.AddDbContext(options => options.UseMySql("server=localhost;database=library;user=mysqlschema;password=mypassword"));
NOTA arriba del CASO de Usar MySql. Esto es consistente. Así que puntos de bonificación para Pomelo.EntityFrameworkCore.MySql por la consistencia entre “usar (namepsace)” y el registro DI “UseMySql”.
y en la “capa inferior” (mi “capa de datos”) donde codifico a EntityFramework Core (pero no a ningún concreto específico)
csproj (capa de datos)