1

階層構造 ラムダ式によるデータベース選択 こんにちは、私のテーブル構造は再帰的です

ID

親ID

ユーザーグループ名

ここに画像の説明を入力

このようにラムダ式でコンテキストから Id のサブセットを選択するにはどうすればよいですか

ここに画像の説明を入力

最初に選択してみる

var キー = db.UsersGroups.Select(x => x).Where(u => u.GroupMasterID == 1).ToArray();

var UsersGroup = db.UsersGroups.Where(x => keys.Contains(x.GroupMasterID));

しかし、間違って返されているか、2レベルのデータしか返されていないと思います

私を助けてください

4

2 に答える 2

0

最後に、SQL関数を作成します

このような

Create  FUNCTION [dbo].[GET_USERGROUPLIST]
(
    @GROUPID INT
)
RETURNS  TABLE 
AS
RETURN 
(
    WITH UsersGroups_CTE AS (
SELECT *
FROM [dbo].[UsersGroups]
WHERE ID = @GROUPID
UNION ALL
SELECT e.ID, e.GroupName, e.ParentID ,e.Status
FROM [dbo].[UsersGroups] e
INNER JOIN UsersGroups_CTE ucte ON ucte.ID = e.ParentID
)
SELECT *
FROM UsersGroups_CTE Where UsersGroups_CTE.Status = 1
); 

このような私のモデルでの次の使用

db.GET_USERGROUPLIST(1);

ロンティベロの提案に感謝します

于 2012-12-08T08:59:45.723 に答える
0

これは、linq を使用して、台無しにしない限り、実行できないことです。あなたがしなければならないことは、おそらく一般的なテーブル式を使用して階層を平坦化することです。そうすれば、単純な linq クエリを記述できるようになります。

于 2012-12-08T03:21:08.610 に答える