我的控制器代碼:.NET MVC3實體比較深在哪裏
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, 字符串和Guid)。
我需要使用第二個include還是其他?
這實際上是對。我已經設置好帳號的用戶名是該用戶的電子郵件地址。我正在查看調試,它顯示user.Identity.Name是一個電子郵件地址。 – lovefaithswing
許多站點使用電子郵件地址作爲用戶名,而ASP.NET的內置成員資格提供程序不區分(或關心)該格式。 Identity.Name可以是任何字符串。 –
Ahh ..在我的項目中,我剛剛實現了我自己的登錄/用戶機制,因爲我並不需要所有角色等(和我的db中的大量表) – MoXplod