Мне нужно управлять хранением данных иерархии в моей базе данных. Но сейчас я столкнулся с проблемой. Я использую сущность sql для моего asp.net. Итак, как я могу преобразовать эти 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;
Вот моя структура таблицы
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 ..
Пожалуйста, помогите.