我用的是SL+WCF RIA Service+Entity Framwork
想实现菜单自动生成,如果登录用户是普通用户(USER)则显示用户菜单,而登录用户是管理员(ADMIN)则显示一些高级菜单选项。遇到的问题是DomainContext.Load()之后,context.TB_LISTITEMs中没有查询返回的实体,无法遍历。但是给comboBox设置数据源就可以显示,不知道为什么。我是SL初学者,请各位多多指教。
SummaryDomainContext context = new SummaryDomainContext();
string identity = SessionManager.Session["identity"].ToString(); //从Session中取出用户身份
context.Load<TB_LISTITEM>(context.GetTB_LISTITEMQuery());
comboBox1.ItemsSource = context.TB_LISTITEMs; //测试给comboBox设置数据源可以显示数据
comboBox1.DisplayMemberPath = "listitem"; MessageBox.Show(context.TB_LISTITEMs.Count().ToString()); //但是context.TB_LISTITEMs中的实体数显示为0,所以下面的foreach遍历也不会执行。。 foreach (TB_LISTITEM tmp in context.TB_LISTITEMs)
{
if (identity == "USER")
{
if (tmp.role == "ADMIN")
{ continue; }
CreateLink(tmp.listitem,tmp.rel); //菜单自动生成,listitem为菜单项目,rel为连接地址
}
else if (identity == "ADMIN")
{
CreateLink(tmp.listitem,tmp.rel);
}
}
想实现菜单自动生成,如果登录用户是普通用户(USER)则显示用户菜单,而登录用户是管理员(ADMIN)则显示一些高级菜单选项。遇到的问题是DomainContext.Load()之后,context.TB_LISTITEMs中没有查询返回的实体,无法遍历。但是给comboBox设置数据源就可以显示,不知道为什么。我是SL初学者,请各位多多指教。
SummaryDomainContext context = new SummaryDomainContext();
string identity = SessionManager.Session["identity"].ToString(); //从Session中取出用户身份
context.Load<TB_LISTITEM>(context.GetTB_LISTITEMQuery());
comboBox1.ItemsSource = context.TB_LISTITEMs; //测试给comboBox设置数据源可以显示数据
comboBox1.DisplayMemberPath = "listitem"; MessageBox.Show(context.TB_LISTITEMs.Count().ToString()); //但是context.TB_LISTITEMs中的实体数显示为0,所以下面的foreach遍历也不会执行。。 foreach (TB_LISTITEM tmp in context.TB_LISTITEMs)
{
if (identity == "USER")
{
if (tmp.role == "ADMIN")
{ continue; }
CreateLink(tmp.listitem,tmp.rel); //菜单自动生成,listitem为菜单项目,rel为连接地址
}
else if (identity == "ADMIN")
{
CreateLink(tmp.listitem,tmp.rel);
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货