(извините за мой плохой английский)
Проблема с вашим кодом - «Выбрать» - ваша сигнатура метода говорит, что он должен возвращать IQueryable из tblChargeCode, поэтому вы не можете вернуть проекцию. Вот два способа написания запроса:
На сервере:
public IQueryable<tblChargeCode> SearchCharges(int min, int max, string description)
{
return ObjectContext.tblChargeCodes
.Where(e => e.Chrgs_Code_01 >= min && e.Chrgs_Code_01 <= max)
.Where(e => e.Bill_Description.StartsWith(description))
.OrderBy(e => e.Chrgs_Code_01)
.Take(10);
}
И позвони на клиента:
context.Load(context.SearchChargesQuery(0, 9999999, "Bill"), (op) =>
{
//op.Entities has your entities loaded
}, null);
Или вы можете просто оставить запрос на сервере:
public IQueryable<tblChargeCode> GetCharges()
{
return ObjectContext.tblChargeCodes.OrderBy(e => e.Chrgs_Code_01);
}
И вызовите его с клиента (он отфильтрует на сервере )
context.Load(context.GetChargesQuery().Where(e => e.Chrgs_Code_01 >= 0 && e.Chrgs_Code_01 <= 9999999)
.Where(e => e.Bill_Description.StartsWith("Bill"))
.OrderBy(e => e.Chrgs_Code_01)
.Take(10), (op) =>
{
//op.Entities has your entities loaded
}, null);
Вы также можете использовать «Contains» вместо «StartsWith» в вашем запросе.