Предварительная версия 7 EF Core 3.0 не может быть установлена ​​для проекта .NET Framework 4.8 через VS2019 nuget

У меня есть решение .NET Framework 4.8 VS2019, которое в настоящее время ориентировано на EF Core 2.0. Я попытался обновить проект до EF Core 3.0 preview 7 через «Управление пакетами Nuget» и получил следующие ошибки: Пакет Microsoft.EntityFrameworkCore.SqlServer 3.0.0-preview7.19362.6 несовместим с net48 (.NETFramework, Version = v4.8) / выиграть. Пакет Microsoft.EntityFrameworkCore.SqlServer 3.0.0-preview7.19362.6 поддерживает: netstandard2.1 (.NETStandard, Version = v2.1)

Я убедился, что предварительный просмотр 6 устанавливается нормально, что имеет смысл, поскольку он нацелен на .NET Standard 2.0, который поддерживается .NET Framework 4.8.

К сожалению, обновление моего файла решения с .NET Framework => .NET Core в настоящее время невозможно из-за устаревшего WCF / .NET-удаленного взаимодействия, которое не поддерживается в .NET Core (и не будет из моего чтения) . Точно так же похоже, что .NET Framework никогда не будет поддерживать .NET Standard 2.1. Означает ли это, что я должен полностью отказаться от использования EF Core, если я хочу обновить предыдущую версию .NET Core 3.0 preview 6?


person Joel    schedule 08.08.2019    source источник
comment
К сожалению, это направление MS с открытым исходным кодом. Все люди, которые по устаревшим причинам не могут переключиться на .Net Core, просто облажались - нет C # 8 +, нет EF Core 3.0+ и т. Д. :-(   -  person Ivan Stoev    schedule 08.08.2019
comment
EF Core 3.0 нацелен на .NET Standard 2.1, чтобы включить async foreach и ссылочные типы, допускающие значение NULL. .NET Framework никогда не будет обновлен для поддержки .NET Standard 2.1 или выше.   -  person bricelam    schedule 09.08.2019
comment
Спасибо, ребята, за ваши быстрые ответы. Мое решение будет заключаться в переносе на Entity Framework до тех пор, пока либо WCF не будет поддерживаться .NET Core, или пока моя команда не успеет портировать WCF = ›gRpc и выполнить обновление с .NET Framework =› .NET Core.   -  person Joel    schedule 09.08.2019
comment
@bricelam При всем моем уважении мы знаем, что .NET Framework не будет обновляться. Однако документация EF Core говорит, что EF Core - это кроссплатформенный продукт, который может работать на .NET Core или .NET Framework.. И в Критические изменения, которые вы, ребята, собираетесь нацелить на только .NET Standard 2.1, тем самым эффективно отменяя поддержку .NET Framework. ИМХО это должно было быть выделено жирным шрифтом в верхней части списка.   -  person Ivan Stoev    schedule 10.08.2019
comment
@Joel Как вы можете догадаться из комментариев, я и моя команда находимся в аналогичной ситуации. К счастью, он не привязан к EF (Core), но, к сожалению, сильно привязан к WCF. К вашему сведению, WCF (серверная часть) не будет портирована. Фактически, больше ничего из .NET Framework не будет перенесено после выпуска .Net Core 3.0.   -  person Ivan Stoev    schedule 10.08.2019
comment
@IvanStoev Спасибо за отзыв! Я исправлю это как можно скорее   -  person bricelam    schedule 12.08.2019


Ответы (1)


Как упоминалось в этой статье Microsoft

Реализации .NET, поддерживаемые EF Core

EF Core 1.x 2.x 3.x

.NET Standard 1.3 2.0 2.1

.NET Core 1.0 2.0 3.0

.NET Framework (1) 4.5.1 4.7.2 (не поддерживается)

и ядро ​​EF теперь использует .Net Standard 2.1, как упоминалось здесь EF Core 3.0 нацелен на .NET Standard 2.1, а не на .NET Standard 2.0

Но когда Microsoft анонсировала .Net Standard 2.1 здесь

Объявление .NET Standard 2.1 В нем говорится, что .Net Framework останется на .net Standard 2

Поскольку многие дополнения API в .NET Standard 2.1 требуют изменений во время выполнения, чтобы быть значимыми, .NET Framework 4.8 останется на .NET Standard 2.0, а не реализует .NET Standard 2.1. .NET Core 3.0, а также предстоящие версии Xamarin, Mono и Unity будут обновлены для реализации .NET Standard 2.1.

Тогда, вероятно, вы больше никогда не сможете получить ef core 3.x на платформе .net, извините

person MRVMV    schedule 01.12.2019