【问题标题】:Cannot foreach through data context无法通过数据上下文进行 foreach
【发布时间】:2011-11-04 17:34:33
【问题描述】:

我想通过 2 个信息进行比较,一个是用户输入,第二个是数据库中的管理员 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 的情况下挖掘数据,或者我的代码有问题吗??

【问题讨论】:

  • 你的 tblAdmins 是 IEnumerable 吗?
  • 鉴于您所显示的内容,我们无法确定x 的类型。 OrganizationContext.tblAdmins 是什么?
  • 组织上下文是领域服务类的文件
  • 你得到了什么异常?
  • 我试图做到这一点,但仍然没有运气。我对 wcf 完全陌生,我以这种方式做到这一点 public IEnumerable GetAdmin() { return this.ObjectContext.tblAdmins .OrderBy(e => e.adminID); }

标签: c# silverlight wcf ria wcf-ria-services


【解决方案1】:

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

context.Load(context.GetTblAdminsQuery(), LoadCompleted, null);

和:

public void LoadCompleted(LoadOperation<YOUR_ENTITY_TYPE> op)
{
    foreach(var item in op.Entities)
    {
        //item is your entity, you can get item.adminID
    }
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-01-16
  • 1970-01-01
  • 2021-02-09
  • 2010-12-24
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多