0
我用這個SQL命令來獲取所有的孩子和孩子的孩子用戶,我不知道我怎麼能寫它與實體?我如何獲得所有childs行與實體命令?
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 | |--------------------------------------|
,如果我想獲得reseler1的所有孩子的使用上SQL命令我改變@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函數的返回數據!?我創建了ADO.Net實體數據模型(Model1.edmx),當我在我的項目中工作時,我需要刪除它並重新創建它,並且如果我編輯model.tt - > users.cs實體類或創建新實體類,每一個重新創建我的模型,我應該編輯它,我如何創建模型的實體類外,什麼是映射返回SQL函數實體的最佳方式? –