LINQPad EF Core 没有为此 DbContext 配置数据库提供程序
LINQPad EF Core no database provider has been configured for this DbContext
我正在使用 LINQPad 6(高级版)。
我已经通过 Entity Framework 核心(2.x、3.x、5.x)驱动程序创建了到我的自定义程序集的连接。我选择通过接受字符串的构造函数实例化 DbContext。
如果我使用“C# 表达式”从此连接创建一个新查询,它工作正常。
Stuff.Take(100)
但是如果我选择“C# Statement(s)”并使用如下示例查询,我会收到一条错误消息 -
"No database provider has been configured for this DbContext..."
var _context = new MyContext();
var dataModel = _context.Stuff.Include(r => r.ParentStuff).ThenInclude(c => c.ChildStuff).FirstOrDefault(x => x.StuffId == 1234);
dataModel.Dump();
此错误令人困惑,因为我在 LINQPad 中设置 EF Core 连接时设置了提供程序。如果未配置数据库提供程序,那么我认为它会为两个查询抛出此错误。
如果您想使用 new
创建一个新的 DbContext
,您应该 set your DbContext
class up for the scenario.
在 LinqPad 中使用 EF Core 驱动程序创建连接不会自动将连接字符串发送到 new
创建的 DbContext
实例。
所以你有两个选择:
- 使用构造函数重载传递连接字符串,它在创建
DbContext
时在 C# 语句中接受一个字符串,例如new MyContext(connStr)
- Select 在
Connection
下拉列表中与 EF Core 驱动程序的连接,并使用 this
访问 DbContext
. 中的属性
我正在使用 LINQPad 6(高级版)。
我已经通过 Entity Framework 核心(2.x、3.x、5.x)驱动程序创建了到我的自定义程序集的连接。我选择通过接受字符串的构造函数实例化 DbContext。
如果我使用“C# 表达式”从此连接创建一个新查询,它工作正常。
Stuff.Take(100)
但是如果我选择“C# Statement(s)”并使用如下示例查询,我会收到一条错误消息 -
"No database provider has been configured for this DbContext..."
var _context = new MyContext();
var dataModel = _context.Stuff.Include(r => r.ParentStuff).ThenInclude(c => c.ChildStuff).FirstOrDefault(x => x.StuffId == 1234);
dataModel.Dump();
此错误令人困惑,因为我在 LINQPad 中设置 EF Core 连接时设置了提供程序。如果未配置数据库提供程序,那么我认为它会为两个查询抛出此错误。
如果您想使用 new
创建一个新的 DbContext
,您应该 set your DbContext
class up for the scenario.
在 LinqPad 中使用 EF Core 驱动程序创建连接不会自动将连接字符串发送到 new
创建的 DbContext
实例。
所以你有两个选择:
- 使用构造函数重载传递连接字符串,它在创建
DbContext
时在 C# 语句中接受一个字符串,例如new MyContext(connStr)
- Select 在
Connection
下拉列表中与 EF Core 驱动程序的连接,并使用this
访问DbContext
. 中的属性