我有我的BLL下面的代碼,它通過WCF服務調用訪問:Linq查詢,包括()與只包含一個查詢忽略了where子句
public List<Dispatch> GetDispatchesByDateRange(DateTime start, DateTime end, params string[] includes)
{
MyEntities entities = new MyEntities();
var res = from d in entities.Dispatches
where d.Route.Legs.Any(x =>
x.StartPoint.ArrivalTime >= start && x.StartPoint.ArrivalTime <= end ||
x.StartPoint.DepartureTime >= start && x.StartPoint.DepartureTime <= end ||
x.EndPoint.ArrivalTime >= start && x.EndPoint.ArrivalTime <= end ||
x.EndPoint.DepartureTime >= start && x.EndPoint.DepartureTime <= end)
select d;
ObjectQuery<Dispatch> query = res as ObjectQuery<Dispatch>;
foreach (string s in includes)
query.Include(s);
return query.ToList();
}
其中一個電話從客戶端發送一些包含在內的熱切相關的實體。我遇到的問題是包含被忽略。我讀過EF在子查詢中使用或作爲投影的一部分時將忽略包含。在這種情況下,我沒有做任何一個,只是根據where條件選擇整個實體,然後添加包含。如果我不使用where條件,那麼包含就會很好。有沒有其他人遇到這種情況,只需添加一個where條件導致包括被忽略?難道這是因爲我的'在哪裏'深入到關係層次結構中?
這很方便知道,但它是我還是這看起來像EF ??中的錯誤! – Shawson
已將評論移至單獨的答案。 – rumblefx0