C# 无法通过数据上下文进行foreach

C# 无法通过数据上下文进行foreach,c#,silverlight,wcf,ria,wcf-ria-services,C#,Silverlight,Wcf,Ria,Wcf Ria Services,我想通过两个信息进行比较,一个是用户输入,另一个是数据库中的管理员ID。在我的项目中,我使用WCF Ria。我创建了一个自动生成的域服务类,用于检索tblAdmin中所有内容的代码是自动生成的。我以这种方式加载数据:: var context = new OrganizationContext(); var x = context.tblAdmins; context.Load(context.GetTblAdminsQuery());

我想通过两个信息进行比较,一个是用户输入,另一个是数据库中的管理员ID。在我的项目中,我使用WCF Ria。我创建了一个自动生成的域服务类,用于检索tblAdmin中所有内容的代码是自动生成的。我以这种方式加载数据::

        var context = new OrganizationContext();
        var x = context.tblAdmins;
        context.Load(context.GetTblAdminsQuery());
        cb1.ItemsSource = x;
它可以以这种方式加载,但我无法使用这种方式获取x.adminID。所以我试过这个::

        foreach (var admin in x)
        {
            cb1.Items.Add(admin.adminID);
        }

但是失败了。。。我想知道,在没有foreach的情况下是否可以挖掘数据,或者我的代码中是否有错误???

看起来问题在于context.Load调用是异步的-要获得结果,需要通过回调并在那里获取数据:

context.Load(context.GetTblAdminsQuery(), LoadCompleted, null);
以及:

公共无效加载已完成(加载操作)
{
foreach(op.Entities中的var项)
{
//item是您的实体,您可以获取item.adminID
}
}

您的tblAdmins是IEnumerable吗?根据您所展示的内容,我们无法判断
x
的类型。什么是
OrganizationContext.tblAdmins
?organization context是域服务类的文件您遇到了什么异常?我尝试过这样做,但仍然没有成功。。我对wcf完全陌生,我是这样做的:public IEnumerable GetAdmin(){返回this.ObjectContext.tblAdmins.OrderBy(e=>e.adminID);}我可以知道如何将项目的特定行存储到通用列表中吗?我尝试使用此::但失败@@
public void LoadCompleted(LoadOperation<YOUR_ENTITY_TYPE> op)
{
    foreach(var item in op.Entities)
    {
        //item is your entity, you can get item.adminID
    }
}