Как выбрать поля из таблицы в службах wcf ria

#silverlight-4.0 #wcf-ria-services

#silverlight-4.0 #wcf-ria-services

Вопрос:

Я использую бизнес-приложение silverlight с использованием служб wcf ria.

в моем классе домена есть метод

  public IQueryable<Employee> GetEmployees()
    {
        return this.ObjectContext.Employees;
    }
 

этот метод возвращает все поля в таблице, и я могу привязать его к datagrid. таблица содержит поля идентификатора сотрудника, имени сотрудника и возраста.

Теперь я хочу взять только одно или два поля из этой таблицы.

я имею в виду, что мне нужны имя и возраст сотрудника, а не идентификатор. или мне нужно использовать имя сотрудника для привязки к выпадающему списку.

Как я могу это сделать?

Ответ №1:

(извините за мой плохой английский)

Если ваш метод возвращает тип IQueryable<Employee>, вы должны вернуть IQueryable<Employee> . Если вы хотите вернуть другой тип, вы можете сделать:

  public class EmployeeDTO
 {
    [Key]
    public int Id { get; set; } //<-- you need a key for this to work
    public string Name { get; set; }
    public int Age { get; set; }
 }
 

А затем создайте метод запроса:

 public IQueryable<EmployeeDTO> GetEmployeeDTO()
{
    return this.ObjectContext.Employees.Select(e=> new EmployeeDTO { Name = e.Name, Age = e.Age});
}
 

Теперь вы можете загрузить запрос на клиенте, и он вернет список EmployeeDTO (только с именем и возрастом)