标签: microsoft-data-sqlclient

nuget 包 Microsoft.Data.SqlClient 是否可以与实体框架一起使用?

我的应用程序在 .NET Framework 4.7 上运行,我使用的是 Entity Framework 6.1.3。目前,我的代码使用命名空间中的一些类,System.Data.SqlClient例如SqlParameter. 我想切换到Microsoft.Data.SqlClient.

\n

但是,我不确定 EF6 是否与Microsoft.Data.SqlClient. 这是微软的一篇旧文章,它说 EF Core、EF 6 等已经\xe2\x80\x99t 尚未过渡到新的提供程序Microsoft.Data.SqlClient。所以,我有点困惑。

\n

System.Data.SqlClient下面的代码一切都运行良好

\n
public async Task<ICollection<int>> GetChildCustomerIdsAsync(int customerId)\n{\n   var sqlParameters = new List<SqlParameter>()\n   {\n      new SqlParameter("@CustomerId", customerId)\n   };\n\n   return await DbContext.Database.SqlQuery<int>("dbo.sp_GetChildCustomerIds @CustomerId=@CustomerId",\n                sqlParameters.ToArray()).ToListAsync().ConfigureAwait(false);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

但是,当我切换到 时Microsoft.Data.SqlClient,我收到此错误:

\n
\n

System.InvalidCastException:SqlParameterCollection 只接受非空 SqlParameter 类型对象,而不接受 SqlParameter 对象。
\nat System.Data.SqlClient.SqlParameterCollection.ValidateType(对象值)
\nat System.Data.SqlClient.SqlParameterCollection.AddRange(数组值)
\nat System.Data.Entity.Core.Objects.ObjectContext.CreateStoreCommand(String commandText, Object [] 参数)
\nat System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryInternalAsync.d__6f`1.MoveNext() …

.net c# entity-framework entity-framework-6 microsoft-data-sqlclient

7
推荐指数
1
解决办法
4717
查看次数

使用 Microsoft.Data.SqlClient 2.0 时无法从单元测试加载 DLL“Microsoft.Data.SqlClient.SNI.x86.dll”

在我的代码中使用Microsoft.Data.SqlClient包(版本 2.0)时,当通过 CI 提供程序中的VSTest.console.exe执行单元测试(以及在本地运行时)时,我会收到以下错误:

System.TypeInitializationException:“Microsoft.Data.SqlClient.TdsParser”的类型初始值设定项引发异常。---> System.TypeInitializationException:“Microsoft.Data.SqlClient.SNILoadHandle”的类型初始值设定项引发异常。---> System.DllNotFoundException: 无法加载 DLL 'Microsoft.Data.SqlClient.SNI.x86.dll': 找不到指定的模块

代码执行正确,单元测试也可以在 NCrunch 和 Visual Studio 2019 测试运行器中正常工作 - 那么问题是什么?

c# unit-testing mstest vstest.console.exe microsoft-data-sqlclient

4
推荐指数
1
解决办法
2975
查看次数

Azure 发布管道 (YAML) IIS Web 部署在锁定文件上失败,生成 ERROR_FILE_IN_USE

实际的

部署时发布管道失败

预期的

部署不会失败

根本原因

文件“Microsoft.Data.SqlClient.SNI.x86.dll”被外部进程锁定,即使“使应用程序脱机标志”设置处于打开状态

解决方法

手动回收应用程序池并重新运行失败的部署。

当使用“recycleAppPool”应用“Action IIS Application Pool”设置时,尝试自动回收也失败。

信息

错误信息

Error Code: ERROR_FILE_IN_USE More Information: Web Deploy cannot modify the file 'Microsoft.Data.SqlClient.SNI.x86.dll' on the destination because it is locked by an external process.

In order to allow the publish operation to succeed, you may need to either restart your application to release the lock, or use the AppOffline rule handler for .Net applications on your next publish attempt.

Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE. Error: The process cannot …
Run Code Online (Sandbox Code Playgroud)

yaml continuous-deployment azure-devops azure-pipelines-release-pipeline microsoft-data-sqlclient

1
推荐指数
1
解决办法
2055
查看次数