[英]Convert SQL to LINQ to SQL
我有SQL查询
with c as (
select categoryId,parentId, name,0 as [level]
from task_Category b
where b.parentId is null
union all
select b.categoryId,b.parentId,b.name,[level] + 1
from task_Category b join c on b.parentId =
c.categoryId)
select name,[level],categoryId,parentId
as item
from c
我想将它转换为LINQ to SQL,但我的LINQ技能还没有。 有人可以帮我转换一下。 with和union语句使我对此更加复杂。
任何帮助赞赏。
那是一个递归的CTE 。 LINQ to SQL还不支持递归CTE(并且可能永远不会)。 抱歉!
作为一种解决方法,您可以将查询保留在SQL中,并将其放在存储过程中。 然后,您可以将该存储过程从LINQ调用到SQL。
LINQ-to-SQL仅支持基本查询; CTE和递归不包括在内。 因此,这是我对LINQ-to-SQL的高科技翻译:
var data = ctx.ExecuteQuery<MyStub>(@"
with c as (
select categoryId,parentId, name,0 as [level]
from task_Category b
where b.parentId is null
union all
select b.categoryId,b.parentId,b.name,[level] + 1
from task_Category b join c on b.parentId =
c.categoryId)
select name,[level],categoryId,parentId
as item
from c").ToList();
同
class MyStub {
public string name {get;set;}
public int level {get;set;}
public int categoryId {get;set;}
public int parentId {get;set;}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.