【问题标题】:RIA Services get list of entitiesRIA Services 获取实体列表
【发布时间】:2010-12-06 22:23:38
【问题描述】:
我正在使用带有实体框架的 RIA 服务开发 Silverlight 应用程序。
请原谅,我对 Ria 服务还很陌生,但是如何在不执行加载操作的情况下从数据库中获取对象列表?
示例:我有一个Employees 表,在这个表中有一个IsSupervisor 标志。我想在网格中显示员工列表,其中组合框单元格绑定到主管列表(员工,其中 isSupervisor = true)。
我遇到的问题是,当主管列表返回时,员工列表只显示主管。
我希望这是有道理的......
【问题讨论】:
标签:
silverlight
entity-framework
service
ria
【解决方案1】:
没有看到您的代码就很难说,因为 RIA 服务非常灵活。
听起来您正在将一个 DataGrid 绑定到您的 DomainContext 的 Employee EntitySet,然后对服务器进行两次调用,一次获取所有员工,然后一次获取主管。如果是这种情况,那么是的,您的第二个调用可以清除第一个调用(取决于您如何设置 LoadBehavior)。
但是,如果您正在查询数据库以获取所有员工,那么您已经在客户端拥有了主管。只需创建一个仅包含主管的单独集合,并将 ComboBox 绑定到此集合。类似的东西:
private void OnEmployeesLoaded(LoadOperation<Employee> loadOp) {
if(!loadOp.HasError) {
Employees = new List<Employee>(loadOp.Entities);
Supervisors = new List<Employee>(loadOp.Entities.Where(e => e.IsSupervisor));
}
}