我用的是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);
                }
            }