我已经创建了一个应用程序控制器抽象类,我的控制器派生自该类(如下文所述)
以下是我的代码的示例
public abstract class ApplicationController : Controller
{
private ProjectDataContext datacontext = new ProjectDataContext();
protected ProjectDataContext DataContext
{
get { return datacontext; }
}
public ApplicationController()
{
ViewData["OpenTasks"] = DataContext.Tasks.Where(t => t.UserId == this.UserId).Count();
}
}
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误,我确定是由于"Where"lamda表达式:
如果控制器没有控制器工厂,请确保它具有无参数的公共构造函数.
无论我编写LINQ查询的哪种方式都会产生此错误,编译应用程序的唯一方法是删除"Where"子句,如下所示.
ViewData["OpenTasks"] = DataContext.Tasks.Count();
Run Code Online (Sandbox Code Playgroud)
任何想法是什么问题或如何解决这个问题,因为我需要对用户执行查询而不返回所有条目.
提前致谢
Ant*_*nes 10
试试这个而不是使用构造函数: -
public abstract class ApplicationController : Controller
{
private ProjectDataContext datacontext = new ProjectDataContext();
protected ProjectDataContext DataContext
{
get { return datacontext; }
}
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(RequestContext);
ViewData["OpenTasks"] = DataContext.Tasks.Where(t => t.UserId == this.UserId).Count();
}
}
Run Code Online (Sandbox Code Playgroud)
很可能当前用户ID依赖于RequestContext
归档时间: |
|
查看次数: |
4151 次 |
最近记录: |