【发布时间】:2011-11-19 00:15:03
【问题描述】:
我的控制器代码:
public ViewResult Index(int? ProjectID)
{
var user = HttpContext.User;
User profile = db.Users.Where(d => d.Email == user.Identity.Name).Single();
var contracts = db.Contracts.Include(c => c.Project);
if (!user.IsInRole("Admin"))
{
contracts = contracts.Where(p => p.Project.Client == profile.Client );
}
if (ProjectID != null)
{
contracts = contracts.Where(u => u.ID == ProjectID);
}
return View(contracts.ToList());
}
这假设会提取其父项目与当前登录的用户具有相同客户端 fk 的所有合同,除非他们是管理员。这是行不通的。
非管理员查看页面时出现以下错误:
无法创建类型的常量值 'MembershipExt.Models.Client'。只有原始类型('例如 Int32, 在此上下文中支持 String 和 Guid')。
我需要使用第二个包含吗?
【问题讨论】:
标签: asp.net asp.net-mvc-3 entity-framework-4