gpt4 book ai didi

c# - nuget 包 Microsoft.Data.SqlClient 是否适用于 Entity Framework ?

转载 作者:行者123 更新时间:2023-12-04 12:58:01 24 4
gpt4 key购买 nike

我的应用程序在 .NET Framework 4.7 上运行,我使用的是 Entity Framework 6.1.3。目前,我的代码使用了命名空间 System.Data.SqlClient 中的一些类。如 SqlParameter .我要切换到 Microsoft.Data.SqlClient .
但是,我不确定 EF6 是否与 Microsoft.Data.SqlClient 兼容.这是一个旧的 article来自 Microsoft,它表示 EF Core、EF 6 等尚未过渡到新的提供程序 Microsoft.Data.SqlClient .所以,我有点困惑。
一切正常,System.Data.SqlClient对于下面的代码

public async Task<ICollection<int>> GetChildCustomerIdsAsync(int customerId)
{
var sqlParameters = new List<SqlParameter>()
{
new SqlParameter("@CustomerId", customerId)
};

return await DbContext.Database.SqlQuery<int>("dbo.sp_GetChildCustomerIds @CustomerId=@CustomerId",
sqlParameters.ToArray()).ToListAsync().ConfigureAwait(false);
}
但是,当我切换到 Microsoft.Data.SqlClient 时,我收到此错误:

System.InvalidCastException: The SqlParameterCollection only accepts non-null SqlParameter type objects, not SqlParameter objects.
at System.Data.SqlClient.SqlParameterCollection.ValidateType(Object value)
at System.Data.SqlClient.SqlParameterCollection.AddRange(Array values)
at System.Data.Entity.Core.Objects.ObjectContext.CreateStoreCommand(String commandText, Object[] parameters)
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryInternalAsync.d__6f`1.MoveNext()

最佳答案

不,EF 6 不适用于 Microsoft.Data.SqlClient,潜在更改的问题之一是 EF6 仍然支持 .NET Framework 4.0

关于c# - nuget 包 Microsoft.Data.SqlClient 是否适用于 Entity Framework ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63830801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com