it-roy-ru.com

Функция Azure - System.Data.SqlClient не поддерживается на этой платформе

Я выполняю следующий код insert в своей функции Azure в базе данных Azure sql server 2014:

    private static void Command(SqlConnection sqlConnection, string query)
    {
        var sqlCommand = new SqlCommand(query, sqlConnection);

        try
        {
            sqlConnection.Open();
            sqlCommand.ExecuteNonQuery();
        }
        finally
        {
            sqlConnection?.Close();
        }
    }

и получить следующее исключение:

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

Вот цепочки зависимостей, которые он использует:

 enter image description here

Как мне запустить простую команду sql из моего приложения? Что я делаю неправильно?

2

Если вам не нужна последняя стабильная версия 4.6.0, просто вернитесь к 4.5.1.

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

  <!-- For publish -->
  <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>
  <!-- For local debug -->
  <Target Name="CopyToBin" BeforeTargets="Build">
    <Copy SourceFiles="$(USERPROFILE)\.nuget\packages\system.data.sqlclient\4.6.0\runtimes\win\lib\netcoreapp2.1\System.Data.SqlClient.dll" DestinationFolder="$(OutputPath)\bin" />
  </Target>

Существует проблема отслеживание этой ссылочной проблемы сборки. 

5
Jerry Liu

Если вы используете EF Core, v2.1.4, кажется, работает.

0
Mike Dean