Я пытался реализовать простую систему подкачки на службе WCF, которую я написал, которая использует Linq To SQL Для запроса базы данных, но, похоже, переходит от одной проблемы к другой.
Я хочуСлужба WCF возвращает список этого типа:
[DataContract]
public class TestType
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string Name { get; set; }
}
, и я использую следующий код:
int pageNumber = 0;
int pageSize = 25;
List<TestType> results = (from caseTypes in context.cch
select new TestType()
{
ID = caseTypes.cch_id,
Name = caseTypes.cch_case_ref
}
).Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList<TestType>();
Однако, когда я запускаю код, я получаю сообщение об ошибке:
The method 'Skip' is only supported for sorted input in LINQ to Entities. The method 'OrderBy' must be called before the method 'Skip'.
Итак, если я изменю код для добавления заказа:
List<TestType> results = (from caseTypes in context.cch
orderby caseTypes.cch_id
select new TestType()
{
ID = caseTypes.cch_id,
Name = caseTypes.cch_case_ref
}
).Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList<TestType>();
Затем я получаю сообщение об ошибке:
Count must have a non-negative value.
Parameter name: count
Ядаже подходя к этому поиску правильно?