无法查询 ApplicationDbContext,方法需要 1 个参数

Unable to query ApplicationDbContext, method takes 1 argument

我正在尝试获取模型列表,但我似乎无法查询 ApplicationDbContext.I 正在获取 **No overload for method 'Query' takes 1 arguments。 这是我的 ApplicationDbContext

private readonly ApplicationDbContext _context;
        public DapperController(ApplicationDbContext context)
        {
            _context = context;
        }

和 GetAll 方法


public List<PoleModel> GetAll()
        {
            var obj = _context.Query<PoleModel>("Select * from dbo.GRAD").ToList();
            return obj;
        }

我应该使用 List 以外的东西吗?像 IEnumerable 之类的?我有点迷茫,因为我之前没有在 .NET Core 工作过...

您需要为代码优先数据库启用迁移才能初始化。打开包管理器并输入:

  1. 启用迁移
  2. 添加迁移initCreate
  3. 更新数据库

您似乎在尝试混合使用 Entity Framework 和 Dapper。您正在注入 ApplicationDbContext,但随后尝试使用 Dapper 查询它,就像您查询 SqlConnection 对象一样。

要使用 EF 查询上下文,您需要执行如下操作:

public List<PoleModel> GetAll()
{
    var obj = _context.PoleModelDbSet.ToList();
    return obj;
}

而要使用 Dapper,您需要注入一个 SqlConnection,类似于:

private readonly SqlConnection _connection;
public DapperController(SqlConnection connection)
{
    _connection = connection;
}

并像这样查询:

public List<PoleModel> GetAll()
{
    var obj = _connection.Query<PoleModel>("Select * from dbo.GRAD").ToList();
    return obj;
}