Я новичок в ядре EF, и я пытаюсь заставить его работать с моим проектом ASP.NET Core.
Я получаю вышеупомянутую ошибку 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");
}
Все мои исследования онлайн указывают на пропущенные ссылки, но я не могу понять, какой из них мне не хватает ( см. Изображение ).
asp.net-core
entity-framework-core
Максим Лафламм
источник
источник
Ответы:
Это известная проблема в системе проектов. См. Dotnet / project-system # 1741
источник
Сначала мы устанавливаем пакет NuGet для Microsoft.EntityFrameworkCore.SqlServer :
Затем, после импорта пространства имен с
добавляем контекст базы данных:
источник
добавление
using Microsoft.EntityFrameworkCore;
вручную решил проблему для меня
Нашел здесь
Редактировать...
для dotnet core 3.1 добавить
Microsoft.EntityFrameworkCore.SqlServer
источник
Установите ниже пакет NuGet решит вашу проблему
Microsoft.EntityFrameworkCore.SqlServer
источник
Пакет отсутствует. Откройте консоль диспетчера пакетов и выполните приведенный ниже код:
источник
Следуйте инструкциям ниже.
Установите Entity Framework Core Design и поставщик базы данных SQL Server для Entity Framework Core:
Импортировать Entity Framework Core:
И настройте свой DbContext:
источник
Я использовал код Visual Studio.
1) Попробуйте установить пакет Microsoft.EntityFrameworkCore.SqlServer, указав номер версии.
Код VS :
'dotnet добавить пакет Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'
Visual Studio: -
'Install-Package Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'
Обратитесь к ссылке « Пакет» Microsoft.EntityFrameworkCore.SqlServer «несовместим со« всеми »фреймворками в проекте ».
2) Затем добавьте пространство имен с помощью Microsoft.EntityFrameworkCore;'вручную в файле Startup.cs.
См. Ссылку ниже https://github.com/aspnet/EntityFramework/issues/7891 .
3) Если у вас возникли проблемы с зависимостью для Microsoft.EntityFrameworkCore.SqlServer.Design' , например «Пакет ' Microsoft.EntityFrameworkCore.Design' несовместим со всеми фреймворками в проекте », нам необходимо выполнить следующую команду:
Код VS: -
dotnet добавить пакет Microsoft.EntityFrameworkCore.Design -v 1.1
Visual Studio
Пакет установки Microsoft.EntityFrameworkCore.Design -v 1.1
источник
Проект -> ManageNugetPackages -> Обзор -> Поиск "Microsoft.EntityFrameworkCore.SqlServer" и установите или обновите.
источник
Как упоминалось в ответе Win с наибольшей оценкой, вам может потребоваться установить пакет 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 core webapps использует оператор using
<PackageReference Include="Microsoft.AspNetCore.App" />
Microsoft.EntityFrameworkCore.SqlServer включен в этот метапакет. Итак, в вашем Startup.cs вам может потребоваться только добавить:
using Microsoft.EntityFrameworkCore;
источник
Я считаю, что это можно решить, добавив ссылку на проект в Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.SqlServer не был установлен непосредственно в моем проекте, но пакет .Design установит его в любом случае в качестве предварительного условия.
источник
Для меня эта проблема возникла с кодом Visual Studio, и я смог исправить с помощью двух шагов:
using Microsoft.EntityFrameworkCore;
dotnet build
в терминале.источник
В Visual Studio проверьте Диспетчер пакетов NuGet => Управление пакетами для решения , проверьте все эти пакеты, независимо от того, установлены они в вашем решении или нет, как показано ниже:
Я решил те же проблемы после того, как проверил, что все вышеупомянутые пакеты были установлены.
источник
Установите пакет EntityFrameworkCore.SqlServer:
Nuget: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.SqlServer/
источник
первое добавление
Install-Package Microsoft.EntityFrameworkCore.SqlServer
затем добавьте в свой файл .cs
using Microsoft.EntityFrameworkCore;
наконец, добавьте это в свое ядро
Startup.cs
источник
, Я думаю, что это проблема с версией Sqlite, у меня была такая же проблема, когда я использовал эти версии SqLite
Версия 2.2.4 :
После проверки версии здесь я изменил версию, и она сработала.
Нет ошибок после использования этого
Версия 2.1.2 :
источник
Я обошел это просто:
Добавить
SqlServerDbContextOptionsExtensions
в рассматриваемый класс РазрешитьSqlServerDbContextOptionsExtensions
Это устраняет проблему, по умолчанию должна отсутствовать какая-либо ссылка.
источник
Для тех, у кого все еще есть эта проблема: используйте NuGet для установки: Microsoft.EntityFrameworkCore.Proxies
Эта проблема связана с использованием Castle Proxy с EFCore.
источник
Ничего себе, так много ответов, но никто не упомянул об этом Microsoft.EntityFrameworkCore.InMemory пакет !
Добавьте ссылку на этот пакет:
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.2.2" />
и вам должно быть хорошо идти.источник
У меня была эта проблема, когда я перешел на Microsoft.EntityFrameworkCore.SqlServer v3.0.0 и Microsoft.EntityFrameworkCore.Tools v3.0.0
Когда я вернулся к версии 2.2.6 в обеих библиотеках, ошибка исчезла. Это скорее обходной путь, чем решение, но он поможет вам приступить к работе, пока проблема не будет устранена.
источник
Сообщение об ошибке:
Решение:
установить "microsoft.entityframeworkcore.sqlserver" с NuGet
Исправлена :
PS: убедитесь, что вы используете EF для содержимого «using Microsoft.EntityFrameworkCore;»
источник
Для asp.net core версии 2.1 обязательно добавьте следующий пакет, чтобы решить проблему. (По крайней мере, это решит проблему с использованием SQLite)
Вот ссылка на документацию, использующую SQLite с ядром Entity Framework. https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite
источник
У меня была эта проблема, кажется, я не добавил необходимые пакеты NuGet, хотя я думал, что сделал это, обязательно проверьте их один за другим.
источник
В настоящее время работает с Entity Framework Core 3.1.3. Ни одно из вышеуказанных решений не устранило мою проблему.
Однако установка пакета Microsoft.EntityFrameworkCore.Proxies в моем проекте исправила проблему. Теперь я могу получить доступ к вызову метода UseLazyLoadingProxies () при настройке параметров DBContext.
Надеюсь, это кому-нибудь поможет. Смотрите следующую статью:
Ленивая загрузка в EF Core
источник
Install-Package:
тогда добавьте вершину своего класса:
это работает для меня
источник
Я должен был использовать линию
в методе ConfigureServices в Startup.cs
источник
Копирование следующего кода в TodoApi.csproj из https://github.com/aspnet/Docs/tree/master/aspnetcore/tutorials/first-web-api/sample/TodoApi решило аналогичную проблему для меня.
Microsoft.AspNetCore.All может быть чрезмерным, но включает EntityFrameworkCore
источник
Установить пакет NuGet
Microsoft.EntityFrameworkCore.SqlServer
чтобы решить эту проблему.Я использую Core версии 3.1
источник