【问题标题】:WCF RIA Services, EntitySet always empty?WCF RIA 服务,EntitySet 总是空的?
【发布时间】:2009-12-11 05:40:32
【问题描述】:

关于新的 WCF Ria 服务测试版的快速问题:

如果我在代码隐藏中这样做:

EntitySet e = MyContext.Employees

似乎实体集在运行时总是空的? IE。如果我想遍历 Employee 实体集。

另外,如果我正在获取实体集的枚举器,我会收到一条错误消息,告诉我枚举器为空或尚未启动。有没有办法从上下文中获取实体集合并遍历它们?

提前致谢!

【问题讨论】:

    标签: c# wcf silverlight ria


    【解决方案1】:

    您是否检查过 已完成 事件回调?请记住,在 Silverlight 中,所有调用都是异步的。即使您看到在回调之前分配 ItemsSource 的示例代码,它也依赖于这样一个事实:Employees 是数据绑定的 ObservableCollection。

    LoadEmployeeCommand()
    {
        // The Load method initiates the call to the server
        LoadOperation<Employee> loadOperation = domainContext.Load(domainContext.GetEmployeesQuery());
        // The EntitySet is still empty at this point
        employeeDataGrid.ItemsSource = domainContext.Employees; 
        loadOperation.Completed += EmployeeLoadOperationCompleted;
    }
    
    private void EmployeeLoadOperationCompleted(object sender, EventArgs e)
    {
        // Don't need to reassign now but at this point the collection should be populated
        employeeDataGrid.ItemsSource = domainContext.Employees;
    }
    

    【讨论】:

    • 嗨马丁,很抱歉在这里延迟评论。即使我正在使用完成的事件,它也不会触发。它只是跳过 loadOperation.Completed 并停在那里。我不应该能够进入完成的方法吗?再次感谢:)
    • 我会在完成的事件处理程序中设置一个单独的断点,因为当它是异步的时“单步”进入它是没有意义的。如果您到达断点,您可以检查 LoadOperation.HasError 属性和 LoadOperation.Error(如果已设置)。
    猜你喜欢
    • 2011-04-10
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    相关资源
    最近更新 更多