[英]LINQ2SQL: Join multiple tables
我不是很擅長linq2sql甚至是sql,但是所有東西都帶有一點訓練。
我的問題:我有3個表:項目,文件夾和任務。
我需要進行查詢,以便我加入這3個表。
我試過了一下:
public ActionResult Details(string id) {
var user = GetProfile().Id;
var p = _db.Projects.Where(x => Convert.ToString(x.ProjectId) == id && x.UserId == user).SingleOrDefault();
var f = _db.Folders.Where(x => x.ProjectId == p.ProjectId).ToList();
return View(f);
}
這工作正常,我得到與項目相關的文件夾。 現在我想在同一個查詢中查找與文件夾和項目相關的任務。
所以最后我得到這個場景:單擊項目名稱,發送ID,獲取ID,並顯示與我單擊的項目相關的文件夾,並在與文件夾相同的站點上顯示任務。
我不完全確定你在這里想要完成什么。 但這里是一個linq to sql查詢,我將項目文件夾和文件夾加入到任務中。 Project有一個名為ProjectId的字段,Folders也有一個“ProjectId”,我正在其中加入。 假設具有相同的命名約定,文件夾將具有“FolderId”並且任務也將具有“FolderId”。 希望能幫助到你:
var result = (from projects in _db.Projects
join folders in _db.Folders
on projects.ProjectId equals folders.ProjectId
join tasks in _db.Tasks
on folders.FolderId equals tasks.FolderId
where projects.Id.ToString() == id
&& projects.UserId == user
select projects).ToList();
結果將表示符合條件的項目列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.