【发布时间】:2022-09-28 18:29:11
【问题描述】:
我有一个 ASP.NET Core 应用程序,我在其中使用 EF Core 和 MSSQL。在一个已用数据库表中,有一列包含大约 2MB 的二进制数据值。而不是在内存中实现它,我想将该数据流式传输给用户,因此它不会最终出现在 LOH(大对象堆)中。我发现为了做到这一点,我可以使用 ADO.NET,因为它支持列值流。
大多数时候,我对使用 EF Core 非常满意,但在这种情况下,我想回退到 ADO.NET。我知道现在的 EF Core 依赖于 Microsoft.Data.Sql 而不是 System.Data.Sql,所以当我发现 GetDbConnection() 时(提供于 Microsoft.EntityFrameworkCore.Relational 程序集)方法我希望它的返回类型是 Microsoft.Data.SqlClient.SqlConnection 可以很好地与 Microsoft.Data.SqlClient.SqlCommand 构造函数配合使用,但实际上我得到的是 System.Data。 Common.DbConnection。
问题是可以将 System.Data.Common.DbConnection (我从 EF Core 获取)转换为 Microsoft.Data.SqlClient.SqlConnection (我想使用 Microsoft.Data.Sql 使用)?
标签: c# entity-framework-core ado.net .net-6.0 ef-core-6.0