이 SQL 명령을 사용하여 하위 사용자의 모든 하위 및 하위 항목을 가져 왔으며 항목을 어떻게 작성할 수 있는지 알 수 없습니까? 엔티티 명령을 사용하여 모든 하위 행을 어떻게 얻을 수 있습니까?
WITH ParentUser AS (
SELECT *, 1 AS nthLevel
FROM [OnlinePage].[dbo].[Users] usr1
WHERE ID = @UserID
UNION ALL
SELECT usr2.*,
nthLevel + 1 AS nthLevel
FROM ParentUser pu INNER JOIN
[OnlinePage].[dbo].[Users] usr2 ON pu.ID = usr2.UserParentID
)
SELECT * FROM ParentUser WHERE 1 < nthLevel
내 사용자 테이블은 다음과 같습니다
는
CREATE TABLE [dbo].[Users](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Username] [nvarchar](50) NOT NULL,
[UserParentID] [int] NOT NULL
)
는 다음과 같이 그것은`:
|--------------------------------------| |ID |Username |UserParentID | |-----|-----------|--------------------| |1 |admin |0 | |2 |reseler1 |1 | |3 |user1 |1 | |4 |reseler2 |2 | |5 |user2 |4 | |6 |user3 |5 | |--------------------------------------|
을 그리고 난 내가 변경 위의 SQL 명령을 reseler1의 모든 차일을 얻으려면 @UserID는 2이고 내 결과는 다음과 같습니다.
|--------------------------------------| |ID |Username |UserParentID | |-----|-----------|--------------------| |2 |reseler1 |1 | |3 |user1 |1 | |4 |reseler2 |2 | |5 |user2 |4 | |6 |user3 |5 | |--------------------------------------|
지금 내가이 SQL 명령의 개체 모델을 필요 내가이 구글에 검색하고 난 유래에 뭔가 (Querying child entities)를 발견 코드를 좋아하지만, 제대로 작동 만 차일의 한 단계하지 :
var query = from m in dbSet.Where(x => x.ID == 1)
join s in dbSet
on m.ID equals s.UserParentID into masterSlaves
from ms in masterSlaves.DefaultIfEmpty()
select ms;
감사합니다. 어떻게하면 엔터티에서 SQL 함수의 반환 데이터를 매핑 할 수 있습니까? 나는 (Model1.edmx) ADO.Net 엔터티 데이터 모델을 만들고 내 프로젝트에서 일할 때, 나는 그것을 삭제하고 다시 만들고 model.tt -> users.cs 엔터티 클래스를 편집하거나 새로운 엔터티를 생성해야한다. 클래스, 모든 내 모델을 다시 작성해야합니다 그것을 편집해야합니다, 어떻게 엔티티 클래스 외부의 모델을 만들 수 있으며 엔티티 반환 SQL 함수를 매핑하는 가장 좋은 방법은 무엇입니까? –