我有一个与实体框架对话的基本控制器。我正在创建一个dbContext
与基本控制器中的实体进行交谈。当我将家用控制器继承到基本控制器时,它将抛出下面显示的错误。有任何指针吗?
错误消息:
严重性代码描述项目文件行抑制状态错误CS7036
没有任何参数对应于" basecontroller.basecontroller(serviceContext('的所需形式参数"上下文"' 服务 Controllers HomeController.cs
代码:
public class BaseController : Controller
{
ServiceContext _baseContext;
public BaseController(ServiceContext context)
{
_baseContext = context;
}
}
我的HomeController
从基本控制器继承。
public class HomeController : BaseController
{
private readonly ServiceContext _context;
public HomeController(ServiceContext context)
{
_context = context;
}
}
假设您正确地将ServiceContext
注入HomeController
,应该是这样的:
public class BaseController : Controller
{
protected readonly ServiceContext _baseContext;
public BaseController(ServiceContext context)
{
_baseContext = context;
}
}
public class HomeController : BaseController
{
public HomeController(ServiceContext context)
:base(context)
{
}
}
也要从HomeController
访问ServiceContext
,因此将其制成protected
。另外,在HomeController
基类构造函数需要context
参数。因此,您应该将一个传递给基类的构造函数:
public HomeController(ServiceContext context) : base(context)
{ }