簡體   English   中英

如何使用LINQ從父子關系表中獲取數據?

[英]How to get Data from parent child relationship Table using LINQ?

我有類似項目==>版本==> 01 Project01 Null 02 Version01 01 03 Sprint01 02 04 sprint02 02 05 Version02 01 06 Sprint03 05 07 Sprint04 05 08 Project02 Null架構sprints 01 Project01 Null 02 Version01 01 03 Sprint01 02 04 sprint02 02 05 Version02 01 06 Sprint03 05 07 Sprint04 05 08 Project02 Null等等。

我想檢索所有SprintsId,所以我只是將ID(它是sprint / Version / Project的主鍵)傳遞給服務,如果是ProjectId(在這里01),則基於Id,我想在這里檢索所有版本(在這里) 02,05),然后找到SprintsId(03,04,06,07),如果它是VersionsId(此處為05),則我希望所有SprintsId(06,07)

我找到了使用SQL Strored Procedure的解決方案。使用存儲過程它不那么復雜

CREATE PROCEDURE [dbo].[USP_Project]
( 
@ID INT
)
AS 
BEGIN
    DECLARE @PROJECT_LEVEL INT =0

    -- IF PROJECT LEVEL IS PROJECT

    SELECT @PROJECT_LEVEL=COUNT(ID) FROM PROJECTS WHERE ID=@ID AND PARENTID IS NULL 
    IF(@PROJECT_LEVEL=1)
    BEGIN  
            SELECT  PROJ.id AS PROJECT_ID,PROJ.Title  ,VER.ID AS VERSION_ID,VER.Title as [Version], SPRI.ID AS SPRINT_ID,SPRI.Title as [Sprint]
            FROM PROJECTS AS PROJ ,PROJECTS AS VER,PROJECTS AS SPRI
            WHERE  PROJ.ID=@ID AND VER.PARENTID=@ID AND SPRI.PARENTID=VER.ID
     END 

     -- IF PROJECT LEVEL IS VERSION
    SELECT   @PROJECT_LEVEL= COUNT(VER.ID)
    FROM        PROJECTS AS PROJ ,PROJECTS AS VER 
    WHERE       VER.PARENTID=PROJ.ID AND PROJ.PARENTID IS NULL AND VER.ID=@ID

    IF(@PROJECT_LEVEL>0)
    BEGIN 
            SELECT PROJ.id AS PROJECT_ID,PROJ.Title  ,VER.ID AS VERSION_ID,VER.Title as [Version], SPR.ID AS SPRINT_ID,SPR.Title as [Sprint]
            FROM PROJECTS AS PROJ  ,PROJECTS AS VER ,PROJECTS AS SPR
            WHERE  VER.ID=@ID AND SPR.PARENTID=@ID AND VER.PARENTID=PROJ.ID
    END 

     -- IF PROJECT LEVEL IS SPRINT

    SELECT @PROJECT_LEVEL=  COUNT(SPR.ID)
    FROM        PROJECTS AS PROJ ,PROJECTS AS VER ,PROJECTS AS SPR
    WHERE     SPR.PARENTID=VER.ID AND VER.PARENTID=PROJ.ID AND PROJ.PARENTID IS NULL AND SPR.ID=@ID 

    IF(@PROJECT_LEVEL>0)
    BEGIN  
            SELECT  PROJ.id AS PROJECT_ID,PROJ.Title  ,VER.ID AS VERSION_ID,VER.Title  as [Version] , SPR.ID AS SPRINT_ID,SPR.Title as [Sprint]
                    FROM PROJECTS AS PROJ ,PROJECTS AS VER ,PROJECTS AS SPR 
                    WHERE  SPR.ID=@ID AND SPR.PARENTID=VER.ID AND VER.PARENTID=PROJ.ID
    END
END 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM