Я бы порекомендовал вам не возвращаться как IQueryable. Потому что если вы планируете сделать что-то еще с вашим списком, что приведет к вызову базы данных. Например:
var test=db.YourTable.Select (u => u);
var ls= test.Where (a =>a.SomeColumn>9 );
var ls2= test.Where (t =>t.SomeColumn>4);
test.ToList();
ls.ToList();
ls2.ToList();
Когда три вызова toList сделаны, это приведет к 3 вызовам базы данных. Вызовы из базы данных в большинстве случаев дороже, чем зацикливание в памяти. В вашем случае я бы порекомендовал вам сделать что-то вроде этого:
public List<DTO.Order> SelectAll()
{
var q = from o in _db.Orders
select o;
return q.ToList();
}
public List<DTO.Order> GetByRecordeDate(DateTime recordDateTime)
{
var q = from o in _db.Orders
where o.RecordDateTime>recordDateTime
select o;
return q.ToList();
}
Или, если вы действительно хотите сделать реализацию и использовать IQueryable, я бы порекомендовал вам сделать что-то вроде этого:
private IQueryable<DTO.Order> SelectAll()
{
var q = from o in _db.Orders
select o;
return q;
}
private List<DTO.Order> GetAll()
{
return SelectAll().ToList();
}
public List<DTO.Order> GetByRecordeDate(DateTime recordDateTime)
{
var q = from o in SelectAll()
where o.RecordDateTime>recordDateTime
select o;
return q.ToList();
}