我有一个ASP.NET Core应用程序,在其中我将EF Core与MSSQL一起使用。在一个已用数据库表中,有一列包含大约2MB的二进制数据值。我不想在内存中实现它,而是想将数据流式传输给用户,这样它就不会出现在LOH(大型对象堆(中。我发现,为了做到这一点,我可以使用ADO.NET,因为它支持列值流。
大多数时候,我对使用EF Core非常满意,但在这种情况下,我想回退到ADO.NET。我知道EF Core现在依赖Microsoft.Data.Sql而不是System.Data.Sql,所以当我在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使用它(?
好吧,我很尴尬。事实证明,当使用Sql时,你可以直接进行强制转换,它就可以工作了。
var mdsSqlConnection = (Microsoft.Data.SqlClient.SqlConnection)_dbContext.Database.GetDbConnection();
var mdsSqlConnection=(Microsoft.Data.SqlClient.SqlConnection(_dbContext.Database.GetDbConnection((.Connectionstring;
但此字符串中缺少BD的密码