Не удается создать SqlParameter в EF Core 3.1.2 в приложении Xamarin. Android - PullRequest
0 голосов
/ 13 марта 2020

У меня есть Android проект Xamarin.Forms. Это зависит от проекта Db с кодом EF Core (SQL Server) и целевого назначения. Net Стандарт 2.0. Оба проекта в одном решении.

С EF Core 2.2.6 все работает отлично. Когда я переключаюсь на EF Core 3.1.2, проект больше не работает.

Я внес следующие изменения для его компиляции:

  • Я добавил Microsoft.Data.SqlClient 1.1.1 ссылку на проект nuget и использовать пространство имен Microsoft.Data.SqlClient вместо System.Data.SqlClient
  • Заменить DbSet<Entitiy>.FromSql вызовы на DbSet<Entitiy>.FromSqlRaw

Когда я создаю SqlParameter и пытаюсь получить к нему доступ, я получаю ошибку.

Например, когда я запускаю следующий код:

try
{
    var sqlParam = new SqlParameter("aaa", "bbb");
    var value = sqlParam.Value; // exception thrown here
} 
catch (Exception ex)
{
    Debug.WriteLine($"Exception: {ex.GetType()}");
    Debug.WriteLine($"Message: {ex.Message}");
    Debug.WriteLine($"StackTrace: {ex.StackTrace}");
}

Я получаю следующие сообщения об ошибках:

Исключение: System.NullReferenceException
Сообщение: объект ссылка не установлена ​​на экземпляр объекта etcore \ ref \ Microsoft.Data.SqlClient.cs: 1222
в [0x00012] в .cs: 100

Когда sqlParam только что назначен, и я хочу просмотреть его значение, Я получаю следующее представление в Visual Studio:

enter image description here

Я использую Visual Studio 2019, я пытался 16.3.4 и самое последнее на данный момент 16.4.6.

Как решить эту проблему? Что не так с моим кодом?

...