我正在使用entity frame work
。我使用3个表创建一个函数。
这是我的代码:
public static IQueryable GetMenuContent()
{
string roleName ="ADMIN"
var query1 = from ua in db.USER_ACCESS
join p in db.PAGES on ua.PAGE_ID equals p.PAGE_ID
join r in db.ROLES on ua.ROLE_ID equals r.RoleId
where (r.RoleName == roleName)
select new
{
tuserAccess = ua,
tpage = p,
trole = r,
};
return query1;
}
因此,在我的母版页中,我需要查看USER_ACCESS
表 - > PAGE_NAME
。
所以我试试这个
@foreach (var item in pro.Models.SiteContentModel.GetMenuContent())
{
switch (((DAL.PAGES)(item)).PAGE_NAME)
{
case "details":
if (((DAL.USER_ACCESS)(item)).ACC_STATUS == true)
{
<li>@Html.ActionLink("details", "Index", "Business")</li>
}
break;
}
}
但它不起作用.. 我怎么能这样做..
答案 0 :(得分:0)
在您的情况下,您应该使用导航属性而不是连接。
但在你的情况下,你应该改写你的foreach:
@foreach (var item in pro.Models.SiteContentModel.GetMenuContent())
{
switch (item.tpage.PAGE_NAME)
{
case "details":
if (item.tuserAccess.ACC_STATUS == true)
{
<li>@Html.ActionLink("details", "Index", "Business")</li>
}
break;
}
}
答案 1 :(得分:0)
尝试修改方法如下。 你匿名的objcet的财产变更了。
(适用(DAL.t_PAGES)(项))。tpage.PAGE_NAME ((DAL.USER_ACCESS)(项))。tuserAccess.ACC_STATUS 强>
@foreach (var item in pro.Models.SiteContentModel.GetMenuContent())
{
switch (((DAL.t_PAGES)(item)).tpage.PAGE_NAME)
{
case "details":
if (((DAL.USER_ACCESS)(item)).tuserAccess.ACC_STATUS == true)
{
<li>@Html.ActionLink("details", "Index", "Business")</li>
}
break;
}
}