EntityFrameworkで使用する必要があるSQLServerにこのクエリがあるので、これと同じ結果になるEntityFramworkコードを作成するにはどうすればよいですか?
WITH cte AS
(
SELECT *
FROM StockGroups
WHERE GroupParent ='Stationery'
UNION ALL
SELECT g.*
FROM StockGroups g
JOIN cte
ON g.GroupParent = cte.GroupName
)
SELECT *
FROM cte
EFで変換する方法がわからないので、joinで試してみました。
from a in db.StockGroups
join b in db.StockGroups on new { GroupParent = a.GroupParent } equals new { GroupParent = b.GroupName }
where
b.GroupName == "Stationery"
select new {
a.GroupName,
a.GroupParent,
Column1 = b.GroupName,
Column2 = b.GroupParent
}
しかし、結果はCTEほど再帰的ではなく、同じではありません。