[英]Transform SQL query with recursion into LINQ
我陷入了必須將存儲過程轉換為LINQ查詢的任務。
該模型:
存儲過程:
CREATE PROCEDURE [dbo].[sp_GetContactsForCompany]
(
@projectid AS UNIQUEIDENTIFIER
)
AS WITH recursion ( AccountId, Name, ParentAccountId )
AS (
SELECT AccountId, Name, ParentAccountId
FROM dbo.AccountBase
WHERE AccountId = @projectid
UNION ALL
SELECT a.AccountId, a.Name, a.ParentAccountId
FROM dbo.AccountBase AS a
INNER JOIN recursion AS b ON a.ParentAccountId = b.AccountId
)
SELECT ContactId, FullName
FROM dbo.ContactBase
WHERE ParentCustomerId IN (
SELECT AccountId
FROM recursion
)
ORDER BY FullName
LINQ:
from a in allAccs
where a.AccountId == id
select a;
這給了我所有具有給定ID的帳戶。 但是現在我不知道如何應用聯接和遞歸。
任何提示都會很棒。
您必須使用AsHierarchy()方法。
檢查本文: http : //www.scip.be/index.php?Page=ArticlesNET18#AsHierarchy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.