私のデータベースに格納されている階層データを管理する必要があります。しかし、今私は問題に直面しています。私は私のasp.netのエンティティSQLを使用しています。今、これらのSQLをエンティティクエリに変換するにはどうすればいいですか?ここで私は、エンティティフレームワーククエリに変換sqlクエリをエンティティフレームワークsqlに変換
WITH RPL (P_TASK_ID, C_TASK_ID,taskSeq) AS
( SELECT root.P_TASK_ID, root.C_TASK_ID ,root.Seq
FROM [COMMON.TASK_REL_test] as root
UNION ALL
SELECT child.P_TASK_ID, child.C_TASK_ID, child.Seq
FROM [COMMON.TASK_REL_test] parent, [COMMON.TASK_REL_test] child
WHERE parent.C_TASK_ID = CHILD.P_TASK_ID
)
SELECT DISTINCT P_TASK_ID, C_TASK_ID,taskSeq
FROM RPL
ORDER BY P_TASK_ID, C_TASK_ID,taskSeq;
を想定SQLクエリは、ここに私のテーブル構造
pID CID Seq
NULL 1 1
1 2 1
1 3 2
1 4 3
2 5 1
2 6 2
3 7 1
は、ここに私のインサート・テーブル・クエリ
INSERT into [COMMON.TASK_REL_test](P_TASK_ID,C_TASK_ID, Seq)
values (null,1,1)
INSERT into [COMMON.TASK_REL_test](P_TASK_ID,C_TASK_ID,Seq)
values (1,2,1)
INSERT into [COMMON.TASK_REL_test](P_TASK_ID,C_TASK_ID,Seq)
values (1,4,3)
INSERT into [COMMON.TASK_REL_test](P_TASK_ID,C_TASK_ID,Seq)
values (1,3,2)
INSERT into [COMMON.TASK_REL_test](P_TASK_ID,C_TASK_ID,Seq)
values (2,6,2)
INSERT into [COMMON.TASK_REL_test](P_TASK_ID,C_TASK_ID,Seq)
values (2,5,1)
INSERT into [COMMON.TASK_REL_test](P_TASK_ID,C_TASK_ID,Seq)
values (3,7,1)
は、ここに私のコード
ですされていますprivate void createGridView()
{
try
{
using (ObjectContext ctx = new ObjectContext(gbcDbConnection.eObjqueryConnection))
{
string result = @"
;WITH RPL (P_TASK_ID, C_TASK_ID,taskSeq) AS
( SELECT root.P_TASK_ID, root.C_TASK_ID ,root.Seq
FROM LEWREDBEntities.[COMMON_TASK_REL_test] as root
UNION ALL
SELECT child.P_TASK_ID, child.C_TASK_ID, child.Seq
FROM LEWREDBEntities.[COMMON_TASK_REL_test] as parent, LEWREDBEntities.[COMMON_TASK_REL_test] as child
WHERE parent.C_TASK_ID = CHILD.P_TASK_ID
)
SELECT DISTINCT P_TASK_ID, C_TASK_ID,taskSeq
FROM RPL
ORDER BY P_TASK_ID, C_TASK_ID,taskSeq";
ObjectQuery<DbDataRecord> query = ctx.CreateQuery<DbDataRecord>(result);
string cde = query.ToTraceString();
}
}
catch (Exception ex)
{
throw new ApplicationException(ex.Message);
}
}
しかし、私は今、エラーが発生しています。
クエリ構文が無効です。近いうちに ';'、2行目、34桁目。
助けてください。
こんにちは私は;;を追加すると試してみてください "; RPL(P_TASK_ID、C_TASK_ID、taskSeq)AS;今すぐ取得 "クエリの構文が有効ではありません近辺 ';'、1行目、3列目。 – user998405
@ user998405私の回答を更新しました –