我有一個Task對象,它具有Label對象的集合...在數據庫中,這些表格被稱爲Task和Label。如何在LINQ的表達式樹中創建連接?
有多種方式來搜索任務,因此,使用LINQ,我構建一個表達式樹......類似下面的代碼示例我的LINQ查詢:
IQueryable<Data.Task> query = ctx.DataContext.Tasks;
if (criteria.Number > 0)
query = query.Where(row => row.Number == criteria.Number);
if (criteria.CustomerId != Guid.Empty)
query = query.Where(row => row.Project.CustomerId == criteria.CustomerId);
if (criteria.ProjectId != Guid.Empty)
query = query.Where(row => row.ProjectId == criteria.ProjectId);
var data = query.Select(row => TaskInfo.FetchTaskInfo(row));
this.AddRange(data);
這個偉大的工程。 ..但是現在我想要搜索具有特定標籤的任務,例如會計或功能請求。
我能夠從一個完整的查詢爲此在LINQPad:
from t in Tasks
join l in Labels on t.TaskId equals l.SourceId
where l.Name == "accounting"
select t
反正有沒有做到這一點使用表達式樹?我卡住了!任何幫助將不勝感激!
這樣做,但它不是原來的翻譯 - 它*更好*因爲它在連接之前做了什麼,但是我提供了一個翻譯,因此OP可以看到正常查詢翻譯中發生了什麼。 – 2009-01-27 21:50:48