Je suis nouveau dans EF Core et j'essaie de le faire fonctionner avec mon projet ASP.NET Core.
J'obtiens l'erreur ci-dessus dans mon startup.cs
en essayant de configurer le DbContext
pour utiliser une chaîne de connexion de config. Je suis ce tutoriel: https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro
Le code problématique dans startup.cs
:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.SpaServices.Webpack;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.EntityFrameworkCore;
using tracV2.models;
using tracV2.data;
namespace tracV2
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddSingleton<IConfiguration>(Configuration);
string conn = Configuration.GetConnectionString("optimumDB");
services.AddDbContext<tracContext>(options => options.usesqlserver(conn));
}
La UseSqlServer
méthode est reconnue si je la mets directement dans le contexte:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
namespace tracV2.data
{
public class tracContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("myrealconnectionstring");
}
Toutes mes recherches en ligne indiquent des références manquantes, mais je n'arrive pas à trouver celle qui me manque ( voir image ).
asp.net-core
entity-framework-core
Maxime Laflamme
la source
la source
Réponses:
Il s'agit d'un problème connu dans le système de projet. Voir dotnet / project-system # 1741
la source
Tout d'abord, nous installons le package NuGet Microsoft.EntityFrameworkCore.SqlServer :
Ensuite, après avoir importé l'espace de noms avec
nous ajoutons le contexte de la base de données:
la source
ajouter
using Microsoft.EntityFrameworkCore;
a résolu manuellement le problème pour moi
J'ai trouvé ça ici
Éditer...
pour dotnet core 3.1 ajouter
Microsoft.EntityFrameworkCore.SqlServer
la source
L'installation ci-dessous NuGet Package résoudra votre problème
Microsoft.EntityFrameworkCore.SqlServer
la source
Le paquet est manquant. Ouvrez la console du gestionnaire de package et exécutez le code ci-dessous:
la source
Suivez les étapes ci-dessous.
Installez Entity Framework Core Design et le fournisseur de base de données SQL Server pour Entity Framework Core:
Importer Entity Framework Core:
Et configurez votre DbContext:
la source
J'utilisais Visual Studio Code.
1) Essayez d'installer le package «Microsoft.EntityFrameworkCore.SqlServer» en spécifiant le numéro de version.
Code VS :
'dotnet add package Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'
Visual Studio:-
'Install-Package Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'
Reportez-vous au lien ' Package' Microsoft.EntityFrameworkCore.SqlServer 'est incompatible avec' tous 'les frameworks du projet ' pour le faire.
2) Ajoutez ensuite l'espace de noms 'en utilisant Microsoft.EntityFrameworkCore; 'manuellement dans le fichier Startup.cs.
Reportez-vous au lien ci-dessous https://github.com/aspnet/EntityFramework/issues/7891 .
3) Si vous rencontrez un problème de dépendance pour ' Microsoft.EntityFrameworkCore.SqlServer.Design' , comme "Package ' Microsoft.EntityFrameworkCore.Design' est incompatible avec 'tous' les frameworks du projet ", nous devons exécuter la commande ci-dessous,
Code VS: -
dotnet ajouter le package Microsoft.EntityFrameworkCore.Design -v 1.1
Visual Studio
Package d'installation Microsoft.EntityFrameworkCore.Design -v 1.1
la source
Projet -> ManageNugetPackages -> Parcourir -> Recherchez "Microsoft.EntityFrameworkCore.SqlServer" et installez ou mettez à jour.
la source
Comme mentionné par Win, vous devrez peut-être installer le package NuGet Microsoft.EntityFrameworkCore.SqlServer, mais veuillez noter que cette question utilise asp.net core mvc. Dans le dernier ASP.NET Core 2.1, MS a inclus ce qu'on appelle un métapaquet appelé Microsoft.AspNetCore.App
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app?view=aspnetcore-2.2
Vous pouvez voir la référence à celui-ci si vous cliquez avec le bouton droit sur le projet ASP.NET Core MVC dans l'explorateur de solutions et sélectionnez
Edit Project File
Vous devriez voir ce métapaquet si ASP.NET core webapps l'instruction using
<PackageReference Include="Microsoft.AspNetCore.App" />
Microsoft.EntityFrameworkCore.SqlServer est inclus dans ce métapaquet. Donc, dans votre Startup.cs, vous n'aurez peut-être qu'à ajouter:
using Microsoft.EntityFrameworkCore;
la source
Je pense que cela peut être résolu en ajoutant une référence de projet à Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.SqlServer n'a pas été directement installé dans mon projet, mais le package .Design l'installera quand même comme prérequis.
la source
Pour moi, ce problème s'est produit avec Visual Studio Code et j'ai pu le résoudre en 2 étapes:
using Microsoft.EntityFrameworkCore;
dotnet build
dans le terminal.la source
Dans Visual Studio, vérifiez le gestionnaire de packages NuGet => Gérer les packages pour la solution , vérifiez tous ces packages, qu'ils soient installés dans votre solution ou non, comme ci-dessous:
J'ai résolu les mêmes problèmes après avoir vérifié que tous les packages ci-dessus ont été installés.
la source
Installer le package, EntityFrameworkCore.SqlServer:
Nuget: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.SqlServer/
la source
ajouter d'abord
Install-Package Microsoft.EntityFrameworkCore.SqlServer
ajout suivant dans votre fichier .cs
using Microsoft.EntityFrameworkCore;
enfin ajoutez ceci dans votre cœur
Startup.cs
la source
. Je pense que c'est le problème avec la version de Sqlite, j'ai eu le même problème lorsque j'utilisais cette version de SqLite
Version 2.2.4 :
Après avoir vérifié la version ici, j'ai changé la version, puis cela a fonctionné.
Aucune erreur après utilisation
Version 2.1.2 :
la source
J'ai contourné cela simplement en:
Ajouter
SqlServerDbContextOptionsExtensions
à la classe en question RésoudreSqlServerDbContextOptionsExtensions
Cela résout le problème, il doit manquer une référence par défaut.
la source
Pour tous ceux qui rencontrent toujours ce problème: utilisez NuGet pour installer: Microsoft.EntityFrameworkCore.Proxies
Ce problème est lié à l'utilisation de Castle Proxy avec EFCore.
la source
Wow tant de réponses mais aucune n'a mentionné ce package Microsoft.EntityFrameworkCore.InMemory !
Ajoutez la référence à ce package:
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.2.2" />
et vous devriez être prêt à partir.la source
J'ai eu ce problème lorsque je suis passé à Microsoft.EntityFrameworkCore.SqlServer v3.0.0 et Microsoft.EntityFrameworkCore.Tools v3.0.0
Lorsque je suis revenu à la version 2.2.6 sur les deux bibliothèques, l'erreur a disparu. C'est plus une solution de contournement qu'une solution, mais cela vous permettra d'être opérationnel jusqu'à ce que le problème soit résolu.
la source
Message d'erreur:
Solution:
pour installer "microsoft.entityframeworkcore.sqlserver" avec NuGet
Fixe:
PS: assurez-vous que vous utilisez EF sur le contenu "using Microsoft.EntityFrameworkCore;"
la source
Pour asp.net core version 2.1, assurez-vous d'ajouter le package suivant pour résoudre le problème. (Au moins, cela résout le problème en utilisant SQLite)
Voici la référence de la documentation utilisant SQLite avec le noyau du framework d'entité. https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite
la source
J'ai eu ce problème, il semble que je n'avais pas ajouté les packages NuGet requis, même si je pensais l'avoir fait, assurez-vous de les vérifier, un par un.
la source
Travaille actuellement avec Entity Framework Core 3.1.3. Aucune des solutions ci-dessus n'a résolu mon problème.
Cependant, l'installation du package Microsoft.EntityFrameworkCore.Proxies sur mon projet a résolu le problème. Maintenant, je peux accéder à l'appel de la méthode UseLazyLoadingProxies () lors de la définition de mes options DBContext.
J'espère que cela aide quelqu'un. Consultez l'article suivant:
Chargement paresseux dans EF Core
la source
Installer le paquet:
puis ajoutez le haut de votre classe:
ça a marché pour moi
la source
Je devais utiliser la ligne
dans la méthode ConfigureServices dans Startup.cs
la source
La copie du code suivant dans le TodoApi.csproj à partir de https://github.com/aspnet/Docs/tree/master/aspnetcore/tutorials/first-web-api/sample/TodoApi a résolu un problème similaire pour moi.
Microsoft.AspNetCore.All peut être excessif mais il inclut EntityFrameworkCore
la source
Installer le package NuGet
Microsoft.EntityFrameworkCore.SqlServer
pour résoudre ce problème.J'utilise la version principale 3.1
la source