Как использовать Azure функцию V3 с Entity Framework 6 (исключение System.Data.SqlClient: System.Data.SqlClient не поддерживается на этой платформе)? - PullRequest
2 голосов
/ 17 февраля 2020

У меня есть приложение Azure V3, которое должно вызывать хранилища DAL, созданные на основе Entity Framework 6.4. При инициализации базы данных я получаю исключение:

System.Data.SqlClient: System.Data.SqlClient не поддерживается на этой платформе

То есть: System.Data.SqlClient 4.8

public sealed partial class SqlConnection : System.Data.Common.DbConnection, System.ICloneable
{
    public SqlConnection() 
    { 
        throw new System.PlatformNotSupportedException(System.SR.PlatformNotSupported_DataSqlClient)
    }
}

В аналогичных темах было разрешено понизить System.Data.SqlClient до версии 4.5.1, но в моем случае зависимость добавляется Entity Framework.

У кого-нибудь есть идеи, можно ли использовать Entity Framework 6.4 в Azure приложении V3 функции?

1 Ответ

2 голосов
/ 18 февраля 2020

Похоже, что это все еще. NET Ошибка в Core 3.0 SDK, а ниже обходной путь , на который вы могли бы сослаться.

Щелкните правой кнопкой мыши по проекту функции и отредактируйте <FunctionAppName>.csproj, добавьте элементы ниже, чтобы скопировать связанные сборки в выходной каталог.

<ItemGroup>
    <None Include="$(USERPROFILE)\.nuget\packages\system.data.sqlclient\4.6.0\runtimes\win\lib\netcoreapp2.1\System.Data.SqlClient.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
</ItemGroup>

Если вы все еще хотите использовать. NET Core 3.0 SDK или вам также необходимо это исправление для функций v3:

  <Target Name="PostBuild" AfterTargets="PostBuildEvent">
    <!-- https://github.com/Azure/azure-functions-host/issues/3568#issuecomment-461182536 -->
    <Exec Command="copy $(OutDir)$(ProjectName).deps.json $(OutDir)bin\function.deps.json" />
  </Target>
  <Target Name="PostPublish" BeforeTargets="Publish">
    <!-- https://github.com/Azure/azure-functions-host/issues/3568#issuecomment-461182536 -->
    <Exec Command="copy $(PublishDir)$(ProjectName).deps.json $(PublishDir)bin\function.deps.json" />
    <!-- https://github.com/Azure/azure-functions-vs-build-sdk/issues/333 -->
    <Exec Command="move $(PublishDir)\runtimes $(PublishDir)\bin" />
  </Target>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...