У меня есть 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:
Я использую Visual Studio 2019, я пытался 16.3.4 и самое последнее на данный момент 16.4.6.
Как решить эту проблему? Что не так с моим кодом?