Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误CS0103:名称'_上下文';在当前上下文中不存在_C#_Entity Framework_Razor_Entity Framework Core_Razor Pages - Fatal编程技术网

C# 错误CS0103:名称'_上下文';在当前上下文中不存在

C# 错误CS0103:名称'_上下文';在当前上下文中不存在,c#,entity-framework,razor,entity-framework-core,razor-pages,C#,Entity Framework,Razor,Entity Framework Core,Razor Pages,我试图使用Razor页面和实体框架连接数据库,但我遇到了这个错误 错误CS0103:当前上下文中不存在名称“\u context” 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using

我试图使用Razor页面和实体框架连接数据库,但我遇到了这个错误

错误CS0103:当前上下文中不存在名称“\u context”

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
using myWebApp.Models;
using Microsoft.EntityFrameworkCore;

namespace myWebApp.Pages
{
    public class EmployeeModel : PageModel
    {
        private readonly ILogger<EmployeeModel> _logger;

        public EmployeeModel(ILogger<EmployeeModel> logger)
        {
            _logger = logger;
        }

        public void OnGet()
        {
        }

        // Create
        public async Task<IActionResult> OnPostAsync()
        {
            var emptyreservation = new Reservation();

            if (await TryUpdateModelAsync<Reservation>(
                emptyreservation,
                "reservation",   // Prefix for form value.
                r => r.reservationid, r => r.dayid, r => r.roomid, r => r.employeeid))
            {
                _context.Reservation.Add(emptyreservation);
                await _context.SaveChangesAsync();
                return RedirectToPage("./Index");
            }

            return Page();
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Threading.Tasks;
使用Microsoft.AspNetCore.Mvc;
使用Microsoft.AspNetCore.Mvc.RazorPages;
使用Microsoft.Extensions.Logging;
使用myWebApp.Models;
使用Microsoft.EntityFrameworkCore;
名称空间myWebApp.Pages
{
公共类EmployeeModel:PageModel
{
专用只读ILogger\u记录器;
公共雇员模型(ILogger记录器)
{
_记录器=记录器;
}
公共互联网
{
}
//创造
公共异步任务OnPostAsync()
{
var emptyreservation=新保留();
如果(等待TryUpdateModelAsync(
空保存,
“reservation”,//表单值的前缀。
r=>r.reservationid,r=>r.dayid,r=>r.roomid,r=>r.employeeid)
{
_context.Reservation.Add(emptyreservation);
wait_context.SaveChangesAsync();
返回页首(“/索引”);
}
返回页();
}
}
}

,因为您试图在不创建dbcontext实例的情况下访问它。(缺少依赖项注入) 将以下内容添加到您的代码中,它将起作用

private readonly ILogger<EmployeeModel> _logger;
private YourDbContextName _context

        public EmployeeModel(ILogger<EmployeeModel> logger, YourDbContextName context)
        {
            _logger = logger;
            _context = context
        }
专用只读ILogger\u记录器;
私有YourDbContextName\u上下文
公共EmployeeModel(ILogger记录器,YourDbContextName上下文)
{
_记录器=记录器;
_上下文=上下文
}

还要确保您的启动配置正确。

您需要在类的顶部定义它,并将其注入构造函数中 那样

 private readonly ILogger<EmployeeModel> _logger;
  private [YourDbContextName] _context;

    public EmployeeModel(ILogger<EmployeeModel> logger,[YourDbContextName] context)
    {
        _logger = logger;
        _context = context;
    }
专用只读ILogger\u记录器;
private[YourDbContextName]\u上下文;
公共EmployeeModel(ILogger记录器[YourDbContextName]上下文)
{
_记录器=记录器;
_上下文=上下文;
}
不要忘记在ConfigureServices函数中的Startup.cs文件中配置上下文

var connectionString = configuration["ConnectionStrings:sqlConnection"];

services.AddEntityFrameworkSqlServer();

services.AddDbContextPool<DatabaseContext>(options =>
            options.UseSqlServer(connectionString));
var connectionString=configuration[“ConnectionStrings:sqlConnection”];
services.AddEntityFrameworkSqlServer();
services.AddDbContextPool(选项=>
使用SQLServer(connectionString));

如果他添加私有DbContext\u context;这行不通。