Entity framework Can';t在Xamarin.Android应用程序的EF Core 3.1.2中创建SqlParameter
我有一个Android Xamarin.Forms项目。它取决于具有EF核心代码(SQL Server)和目标.Net标准2.0的Entity framework Can';t在Xamarin.Android应用程序的EF Core 3.1.2中创建SqlParameter,entity-framework,xamarin.forms,xamarin.android,.net-core-3.1,ef-core-3.1,Entity Framework,Xamarin.forms,Xamarin.android,.net Core 3.1,Ef Core 3.1,我有一个Android Xamarin.Forms项目。它取决于具有EF核心代码(SQL Server)和目标.Net标准2.0的Db项目。两个项目都在一个解决方案中 使用EF Core 2.2.6,一切正常。当我切换到EF Core 3.1.2时,该项目不再工作 我对其进行了以下修改: 我添加了Microsoft.Data.SqlClient 1.1.1nuget项目参考,并使用命名空间Microsoft.Data.SqlClient而不是System.Data.SqlClient 将DbS
Db
项目。两个项目都在一个解决方案中
使用EF Core 2.2.6,一切正常。当我切换到EF Core 3.1.2时,该项目不再工作
我对其进行了以下修改:
- 我添加了
nuget项目参考,并使用命名空间Microsoft.Data.SqlClient 1.1.1
而不是Microsoft.Data.SqlClient
System.Data.SqlClient
- 将
调用替换为DbSet.FromSql
DbSet.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消息:对象引用未设置为对象的实例
StackTrace:位于Microsoft.Data.SqlClient.SqlParameter.get\u值()[0x00000],位于E:\SqlClientInternal\agent-1\u work\5\s\src\Microsoft.Data.SqlClient中 etcore\ref\Microsoft.Data.SqlClient.cs:1222
在[0x00012]英寸厘米处:100 当刚刚分配了
sqlParam
并且我想查看它的值时,我在Visual Studio中获得以下视图:
我使用Visual Studio 2019,我尝试了16.3.4,目前最新版本为16.4.6
如何解决这个问题?我的代码有什么问题?基于
SqlParameter(“aaa”、“bbb”)
和您的错误消息,请确保您的表中有aaa
列,您可以参考此链接了解此类的用法:@LeonLu MSFTSqlParameter(“aaa”、“bbb”)
仅用于测试,没有aaa
列。但是SqlParameter
实例与特定的表无关,我认为在上面的示例中,拥有aaa
列并不重要。无论如何,对于用于调用存储过程的参数的正确值,我得到了相同的错误。一切都在EF Core 2.2.6
中工作,但在切换到之后立即停止工作。EF Core 3.1.2
。“aaa”只是为了简单起见