Nic*_*ada 22 entity-framework-core .net-core
我正在尝试使用MySQL Connector的新实体框架核心.
我可以获得有效的DbContext并写入数据库,所以一切都已正确设置.
我需要得到Connection从DbContext,因为我必须在应用程序来测试它使用开始connection.Open()一个内部try声明.如果没有有效连接,控制台应用程序应尝试启动MySQL服务器并重试.
我怎样才能获得Connection从DbContext?
在EF6之前context.Connection.经过EF6之后context.Database.Connection.
看起来最新版本也已从EFCore中删除.
Dev*_*per 35
该Microsoft.EntityFrameworkCore.Relational(https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Relational/)封装提供了这种扩展方法-你可以使用dbContext.Database.OpenConnection()或dbContext.Database.GetDbConnection()获取DbConnection对象.
注意:如果已Microsoft.EntityFrameworkCore.SqlServer安装,则无需显式安装此软件包
Wae*_*een 16
您可以执行以下操作:
using (SqlCommand cmd = (SqlCommand)database.GetDbConnection().CreateCommand())
if (cmd.Connection.State != ConnectionState.Open)
{
    cmd.Connection.Open();
}
if (database.CurrentTransaction != null)
{
    cmd.Transaction = database.CurrentTransaction.GetDbTransaction();
}
通过这样做,您将避免在上下文之外使用命令时出现的任何问题。
| 归档时间: | 
 | 
| 查看次数: | 20042 次 | 
| 最近记录: |