एंटिटी फ्रेमवर्क कोर: DbContextOptionsBuilder में 'यूज़क्लेवर' के लिए कोई परिभाषा नहीं है और न ही कोई एक्सटेंशन विधि 'यूज़क्लेसर'


150

मैं EF कोर के लिए नया हूं और मैं अपने ASP.NET कोर प्रोजेक्ट के साथ काम करने की कोशिश कर रहा हूं।

मेरे पास उपरोक्त त्रुटि startup.csतब आती है जब कॉन्फ़िगरेशन से DbContextकनेक्शन स्ट्रिंग का उपयोग करने के लिए कॉन्फ़िगर करने का प्रयास किया जाता है। मैं इस ट्यूटोरियल का अनुसरण कर रहा हूं: https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro

समस्याग्रस्त कोड 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));
        }

UseSqlServerविधि अगर मैं इसे सीधे संदर्भ में डाल दिया मान्यता प्राप्त है:

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");
        }

मेरे सभी शोध ऑनलाइन गायब संदर्भों की ओर इशारा करते हैं, लेकिन मुझे यह पता नहीं लग सकता है कि मैं किसको याद कर रहा हूं ( चित्र देखें )।


एक ही बात, intellissense विधि भी नहीं मिल रहा है।
मैक्सिम लाफलामे

जवाबों:



352

पहले हम Microsoft.EntityFrameworkCore.SqlServer NuGet पैकेज स्थापित करते हैं :

PM > Install-Package Microsoft.EntityFrameworkCore.SqlServer

फिर, नाम स्थान के साथ आयात करने के बाद

using Microsoft.EntityFrameworkCore;

हम डेटाबेस संदर्भ जोड़ते हैं:

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

3
उत्तर के लिए धन्यवाद, लेकिन मैंने पहले ही ऐसा कर लिया था। मुझे संदेह होने लगा है कि मेरी मूल परियोजना में कुछ दूषित है। मैं यह देखने की कोशिश करूंगा कि क्या मैं एक नए प्रोजेक्ट से पुन: पेश कर सकता हूं ...
मैक्सिम लाफलामे

10
इस उत्तर को अन्य लोगों की तरह सही उत्तर के रूप में चिह्नित किया जाना चाहिए, इसका कारण यह है कि विधि UseSqlServer इस पैकेज से है, अन्य पैकेजों से नहीं।
H35am

107

जोड़ने using Microsoft.EntityFrameworkCore;

मेरे लिए समस्या को मैन्युअल रूप से हल किया

यहीं मिला

संपादित करें ...

डॉटनेट कोर 3.1 ऐड के लिए

Microsoft.EntityFrameworkCore.SqlServer


5
यह उत्तर है।
smulholland2

मेरे लिए यह तय! किसी तरह यह सुझाव सूची ctrl + में नहीं था।
रॉन स्प्लिंटर

इसे मेरे लिए 2019 में .Net Core 2.2
lucamuh

1
हाँ, लेकिन मैंने पाया कि Microsoft.EntityFrameworkCore.SqlServer पैकेज डॉटनेटकोर 3.1 के लिए आवश्यक था। इससे पहले, यह दिखाई दिया कि Microsoft.EntityFrameworkCore अकेले पर्याप्त था।
जेरेमी रे ब्राउन

31

नीचे NuGet पैकेज स्थापित करें आपकी समस्या का समाधान करेगा

Microsoft.EntityFrameworkCore.SqlServer

Microsoft -EntityFrameworkCore.SqlServer को स्थापित करें


1
यह एक पंक्ति कमांड सेशन की समस्या को कैसे हल करेगी, इसके बारे में थोड़ा और स्पष्टीकरण जोड़ें। विशेष रूप से, यहां आप एक पैकेज को संबोधित कर रहे हैं, इसलिए आपको यह समझाने की जरूरत है कि वह पैकेज कैसे काम करता है।
पार्थ पांड्या

"DbContextOptionsBuilder.UseSqlServer" Microsoft.EntityFrameworkCore.SqlServer पैकेज में उपलब्ध है , इसलिए बिल्ड समस्या को हल करने के लिए इसके संदर्भ को जोड़ने की आवश्यकता है।
फणी के

9

पैकेज गायब है। पैकेज प्रबंधक कंसोल खोलें और नीचे दिए गए कोड को निष्पादित करें:

Install-Package Microsoft.EntityFrameworkCore.SqlServer 

9

नीचे दिए गए चरणों का पालन करें।

Entity Framework Core के लिए Entity Framework Core Design और SQL Server डेटाबेस प्रदाता स्थापित करें:

dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.SqlServer

आयात इकाई रूपरेखा कोर:

using Microsoft.EntityFrameworkCore;

और अपने DbContext को कॉन्फ़िगर करें:

var connectionString = Configuration.GetConnectionString("myDb");
services.AddDbContext<MyDbContext>(options => 
    options.UseSqlServer(connectionString)
);

7

मैं विजुअल स्टूडियो कोड का उपयोग कर रहा था।

1) संस्करण संख्या निर्दिष्ट करके पैकेज 'Microsoft.EntityFrameworkCore.SqlServer' को स्थापित करने का प्रयास करें।

वीएस कोड :

'डॉटनेट ऐड पैकेज Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'

दृश्य स्टूडियो:-

'इंस्टॉल-पैकेज Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'

' पैकेज' का संदर्भ लें 'Microsoft.EntityFrameworkCore.SqlServer' इसे करने के लिए परियोजना में 'सभी' रूपरेखाओं के साथ असंगत है।

2) फिर Microsoft 'नाम का उपयोग करके नामस्थान जोड़ें 'Startup.cs फ़ाइल में मैन्युअल रूप से।

नीचे दिए गए लिंक का संदर्भ लें https://github.com/aspnet/EntityFramework/issues/7891

3) यदि आपको ' Microsoft.EntityFrameworkCore.SqlServer.Design' के लिए कोई भी निर्भरता का मुद्दा मिलता है , जैसे "पैकेज ' Microsoft.EntityFrameworkCore.Design' परियोजना में सभी ढांचे के साथ असंगत है ", तो हमें नीचे दिए गए आदेश को चलाने की आवश्यकता है।

VS कोड: -

dotnet add पैकेज Microsoft.EntityFrameworkCore.Design -v 1.1

दृश्य स्टूडियो

Microsoft.EntityFrameworkCore.Design -v 1.1 स्थापित करें


1
यह वास्तव में काम करता है। यह सवाल का सबसे अच्छा जवाब है। धन्यवाद @ कृष्ण
पेंडि


4

जैसा कि विन द्वारा शीर्ष स्कोरिंग उत्तर के अनुसार आपको Microsoft.EntityFrameworkCore.SqlServer NuGet पैकेज स्थापित करने की आवश्यकता हो सकती है, लेकिन कृपया ध्यान दें कि यह प्रश्न asp.net core mvc का उपयोग कर रहा है। नवीनतम ASP.NET Core 2.1 में, MS ने शामिल किया है जिसे Microsoft.AspNetCore.App नामक एक रूपक कहा जाता है

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app?view=aspnetcore-2.2

यदि आप समाधान एक्सप्लोरर में ASP.NET Core MVC प्रोजेक्ट पर राइट-क्लिक करते हैं, तो आप इसका संदर्भ देख सकते हैं Edit Project File

यदि आप ASP.NET कोर स्टेटमेंट का उपयोग करते हुए वेबपेज को देखते हैं, तो आपको यह रूपक देखना चाहिए

<PackageReference Include="Microsoft.AspNetCore.App" />

Microsoft.EntityFrameworkCore.SqlServer इस रूपक में शामिल है। तो आपके Start.up में आपको केवल जोड़ने की आवश्यकता हो सकती है:

using Microsoft.EntityFrameworkCore;


3

मेरा मानना ​​है कि यह Microsoft.EntityFrameworkCore.SqlServer.Design में एक परियोजना संदर्भ जोड़कर हल किया जा सकता है

Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design

Microsoft.EntityFrameworkCore.SqlServer सीधे मेरी परियोजना में स्थापित नहीं किया गया था, लेकिन .Design पैकेज इसे किसी भी शर्त के रूप में वैसे भी स्थापित करेगा।


अनावश्यक पैकेज स्थापित करना जो आवश्यक परियोजना को संचरित निर्भरता के रूप में लाता है, समस्या का समाधान नहीं है।
स्मिट करें

आप मान लेते हैं कि पैकेज अनावश्यक है, फिर भी यह मेरी परियोजना को ठीक करता है जब मेरे पास एक ही मुद्दा था।
एंड्रयू एस

वह पैकेज वर्तमान प्रश्न के लिए अनावश्यक है। यह अलग मुद्दे के लिए आवश्यक हो सकता है लेकिन यह एक नहीं है।
स्मिट

आज के रूप में, 27 जुलाई, आप सिर्फ Microsoft.EntityFrameworkCore.SqlServer पैकेज स्थापित कर सकते हैं और यह इस मुद्दे को हल करेगा
danfer

3
आज के रूप में, 5 / फरवरी / 2018, आपको अभी भी Microsoft.EntityFrameworkCore.SqlServer.Design पैकेज जोड़ना होगा। यह ASP.NET Core 2.0.1 वेब प्रोजेक्ट का उपयोग करके देखा गया।
रूस

3

मेरे लिए यह समस्या विज़ुअल स्टूडियो कोड के साथ हुई और मैं 2 चरणों के साथ ठीक करने में सक्षम था:

  1. मैन्युअल रूप से जोड़ना using Microsoft.EntityFrameworkCore;
  2. dotnet buildटर्मिनल में चल रहा है।

3

Visual Studio में, NuGet Package Manager => समाधान के लिए संकुल प्रबंधित करें , इस सभी संकुल की जाँच करें, कि क्या आपके समाधान में संस्थापित है या नहीं, नीचे दिए अनुसार:

  1. EntityFrameworkCore
  2. Microsoft.EntityFrameworkCore
  3. Microsoft.EntityFrameworkCore.InMemory
  4. Microsoft.EntityFrameworkCore.Relational
  5. Microsoft.EntityFrameworkCore.Sqlite.Core
  6. Microsoft.EntityFrameworkCore.SqlServer
  7. Microsoft.EntityFrameworkCore.Tools

मैंने उपरोक्त सभी पैकेजों की जाँच के बाद समान मुद्दों को हल कर दिया है।



3

पहले जोड़ें Install-Package Microsoft.EntityFrameworkCore.SqlServer

अगले अपने .cs फ़ाइल में जोड़ें using Microsoft.EntityFrameworkCore;

अंत में इसे अपने मूल में जोड़ें Startup.cs

  public void ConfigureServices(IServiceCollection services)
        {
            services.AddEntityFrameworkSqlServer().AddDbContext<ApplicationContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MovieContext")));
        }

2

यदि आप Sqlite के मामले में इस मुद्दे का सामना कर रहे हैं तो

। मुझे लगता है कि Sqlite के संस्करण के साथ यह समस्या है, मुझे एक ही समस्या थी जब मैं Sqlite के इस संस्करण का उपयोग कर रहा था

संस्करण 2.2.4 :

यहाँ छवि विवरण दर्ज करें

यहां वर्जन चेक करने के बाद यहाँ छवि विवरण दर्ज करेंमैंने वर्जन बदला तो यह काम कर गया।

यहाँ छवि विवरण दर्ज करें

इसका उपयोग करने के बाद कोई त्रुटि नहीं

संस्करण 2.1.2 :

यहाँ छवि विवरण दर्ज करें


1

मैं इसके द्वारा बस के आसपास है:

SqlServerDbContextOptionsExtensionsप्रश्न हल करने में कक्षा में जोड़ेंSqlServerDbContextOptionsExtensions

यह समस्या को हल करता है, डिफ़ॉल्ट रूप से कुछ संदर्भ गुम होना चाहिए।


1

अभी भी किसी को भी यह समस्या है: स्थापित करने के लिए NuGet का उपयोग करें: Microsoft.EntityFrameworkCore.Proxies

यह समस्या EFCore के साथ कैसल प्रॉक्सी के उपयोग से संबंधित है।


1

वाह इतने सारे उत्तर अभी तक किसी ने भी इस Microsoft.EntityFrameworkCore.InMemory पैकेज का उल्लेख नहीं किया है !

इस पैकेज में संदर्भ जोड़ें: <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.2.2" />और आपको जाने के लिए अच्छा होना चाहिए।


1

Microsoft के पास जाने पर मुझे यह समस्या हुई थी। EntityFrameworkCore.SqlServer v3.0.0 और Microsoft.EntityFrameworkCore.Tools v3.0.0

जब मैं दोनों पुस्तकालयों में वापस v2.2.6 में बदल गया, तो त्रुटि दूर हो गई। यह एक समाधान की तुलना में अधिक समाधान है, लेकिन जब तक समस्या ठीक नहीं हो जाती, तब तक यह आपको उठाता और चलाता रहेगा।


1

इस मुद्दे को ठीक करने का आसान तरीका

त्रुटि संदेश:
यहाँ छवि विवरण दर्ज करें

समाधान:
NuGet के साथ "microsoft.entityframeworkcore.sqlserver" स्थापित करने के लिए
यहाँ छवि विवरण दर्ज करें

फिक्स्ड:
यहाँ छवि विवरण दर्ज करें

PS: सुनिश्चित करें कि आपने EF का उपयोग सामग्री पर "Microsoft.EntityFrameworkCore का उपयोग करके किया है;" यहाँ छवि विवरण दर्ज करें


0

Asp.net कोर संस्करण 2.1 के लिए समस्या को ठीक करने के लिए निम्न पैकेज जोड़ना सुनिश्चित करें। (कम से कम इस समस्या को SQLite का उपयोग करके ठीक करें)

dotnet add package Microsoft.EntityFrameworkCore.Sqlite
dotnet add package Microsoft.EntityFrameworkCore.Design

यहां इकाई रूपरेखा कोर के साथ SQLite का उपयोग करके प्रलेखन का संदर्भ दिया गया है। https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite


0

मेरे पास यह मुद्दा था, ऐसा लगता है कि मैंने आवश्यक NuGet पैकेज नहीं जोड़े थे, हालांकि मुझे लगा कि मैंने ऐसा किया है, उन्हें एक-एक करके जांचना सुनिश्चित करें।


0

वर्तमान में एंटिटी फ्रेमवर्क कोर 3.1.3 के साथ काम कर रहा है। उपरोक्त समाधानों में से किसी ने भी मेरा मुद्दा तय नहीं किया।

हालाँकि, पैकेज को स्थापित करना Microsoft.EntityFrameworkCore.Proxies पर मेरी परियोजना ने समस्या को निर्धारित किया। अब मैं अपने DBContext विकल्पों को सेट करते समय UseLazyLadingProxies () विधि कॉल का उपयोग कर सकता हूं।

आशा है कि यह किसी की मदद करता है। निम्नलिखित लेख देखें:

ईएफ कोर में आलसी लोड हो रहा है


0

पैकेज स्थापित करे:

**Microsoft.EntityFrameworkCore.SqlServer**

फिर अपनी कक्षा में शीर्ष जोड़ें:

**Microsoft.EntityFrameworkCore;**

मेरे लिए काम किया है


0

मुझे लाइन का उपयोग करना था

 services.AddEntityFrameworkSqlite().AddDbContext<MovieContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MovieContext")));

Startup.cs में कॉन्फ़िगर करें विधि


0

TodoApi.csproj में निम्न कोड को https://github.com/aspnet/Docs/tree/master/aspnetcore/tutorials/first-web-api/sample/TodoAsproj से कॉपी करना मेरे लिए इसी तरह के मुद्दे को हल करता है।

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
  </ItemGroup>

</Project>

Microsoft.AspNetCore.All अत्यधिक हो सकता है लेकिन इसमें EntityFrameworkCore शामिल है


-1

Microsoft.EntityFrameworkCore.SqlServerइस समस्या को हल करने के लिए NuGet पैकेज स्थापित करें ।

मैं कोर संस्करण 3.1 का उपयोग कर रहा हूं


2
यह उत्तर पहले ही 2017-03-29 दिया गया था। इसे फिर से दोहराने की आवश्यकता नहीं है
थॉमस वेलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.