383 votes

Entity Framework core: DbContextOptionsBuilder 'ne contient pas de définition pour' usesqlserver 'et aucune méthode d'extension' usesqlserver '

Je suis nouveau à l'EF de base et je vais essayer de le faire fonctionner avec mon asp.net projet de base.

J'obtiens l'erreur ci-dessus dans mon startup.cs lors de la tentative confiugure la dbcontext utiliser une chaîne de connexion de config. Je suis en suivant ce tutoriel : https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro

Le code posant problème au démarrage.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));
        }

L' usesqlserver méthode est reconnu si je l'ai mis 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");
        }

Tous mes le domaine de la recherche en ligne points de références manquantes, mais je n'arrive pas à trouver celui qui me manque(voir l'image).références

Toute aide serait grandement appréciée,

Merci

816voto

Win Points 16724

Nous installons le package Microsoft.EntityFrameworkCore.SqlServer NuGet.

Microsoft.EntityFrameworkCore.SqlServer

 PM > Install-Package Microsoft.EntityFrameworkCore.SqlServer
 

Ensuite,

    services.AddDbContext<AspDbContext>(options =>
       options.UseSqlServer(config.GetConnectionString("optimumDB")));
 

142voto

Victor.Uduak Points 788

ajouter using Microsoft.EntityFrameworkCore;

résolu manuellement le problème pour moi

J'ai trouvé ça ici

40voto

Phani K Points 161

Installez ci-dessous le paquet NuGet va résoudre votre problème

Microsoft.EntityFrameworkCore.SqlServer

Package d'installation Microsoft.EntityFrameworkCore.SqlServer

18voto

bricelam Points 3757

Il s'agit d'un problème connu dans le système de projet. Voir dotnet / project-system # 1741

7voto

Krishna Points 1894

J'ai été en utilisant le Code de Visual Studio.

1) Essayez d'installer le paquet 'de Microsoft.EntityFrameworkCore.SqlServer " en spécifiant le numéro de version.

VS Code:

'dotnet ajouter le package Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'

Visual Studio:-

'Install-Package Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'

Consultez le lien"Paquet " de Microsoft.EntityFrameworkCore.SqlServer "est incompatible avec "toutes" les cadres au projet"pour le faire.

2) Ensuite, ajouter l'espace de noms"à l'aide de Microsoft.EntityFrameworkCore;"manuellement au Démarrage.cs fichier.

Consultez le lien ci-dessous https://github.com/aspnet/EntityFramework/issues/7891.

3) Si vous avez des problème de dépendance pour 'Microsoft.EntityFrameworkCore.SqlServer.La conception", comme le "Package"de Microsoft.EntityFrameworkCore.La conception "est incompatible avec "toutes" les cadres dans le projet" ,nous devons exécuter la commande ci-dessous,

VS Code:-

dotnet ajouter le package Microsoft.EntityFrameworkCore.Conception -v 1.1

Visual Studio

Install-Package Microsoft.EntityFrameworkCore.Conception -v 1.1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X