0

이 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; 

답변

0

엔티티를 프레임 워크 및 Linq - 엔티티는 계층 적 쿼리를 지원하지 않습니다. SQL 쿼리를 사용하여 dbSet.SqlQuery 또는 dbContext.Database.SqlQuery으로 호출해야합니다. EF 5/.NET 4.5와 데이터베이스의 첫 번째 접근 방식을 사용하면 SQL 함수를 작성하여 쿼리를 래핑하고 매핑 할 수 있으므로 Linq에서 엔터티 쿼리로이 함수를 사용할 수는 있지만 사용할 수는 없습니다. 이전 버전과 코드를 먼저 사용하십시오.

+0

감사합니다. 어떻게하면 엔터티에서 SQL 함수의 반환 데이터를 매핑 할 수 있습니까? 나는 (Model1.edmx) ADO.Net 엔터티 데이터 모델을 만들고 내 프로젝트에서 일할 때, 나는 그것을 삭제하고 다시 만들고 model.tt -> users.cs 엔터티 클래스를 편집하거나 새로운 엔터티를 생성해야한다. 클래스, 모든 내 모델을 다시 작성해야합니다 그것을 편집해야합니다, 어떻게 엔티티 클래스 외부의 모델을 만들 수 있으며 엔티티 반환 SQL 함수를 매핑하는 가장 좋은 방법은 무엇입니까? –

관련 문제