我正在使用实体框架的RIA服务开发Silverlight应用程序。
请原谅我,我对Ria服务相当新,但是如何在不进行加载操作的情况下从db获取对象列表?
示例:我有一个Employees表,在此表中有一个IsSupervisor标志。我想显示一个网格中的员工列表,其中一个组合框单元绑定到一个主管列表(员工,其中isSupervisor = true)。
我遇到的问题是,当主管列表返回时,员工列表仅显示主管。
我希望这是有道理的......
答案 0 :(得分:0)
如果没有看到你的代码就很难说,因为RIA Services非常灵活。
听起来您正在将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));
}
}