LINQ:将SQL WITH子句转换为LINQ和实体框架

皮特

我有一个使用实体框架的应用程序。我想添加一个树状视图,列出按产品类别分组的产品。我有一个旧的SQL查询,它将获取所有产品和类别,并将它们排列到父节点和子节点中。我正在尝试将其转换为使用EF的LINQ。但是SQL有一个我不熟悉的WITH子查询。我曾尝试使用Linqer和LinqPad对其进行排序,但是它们在WITH子句中阻塞,我不确定如何解决它。在LINQ中这种事情可能吗?

这是查询:

declare @id int
set @id=0
WITH ChildIDs(id,parentid,type,ChildLevel) AS 
(
SELECT id,parentid,type,0 AS ChildLevel
FROM dbo.brooks_product 
WHERE id = @id
UNION ALL
SELECT e.id,e.parentid,e.type,ChildLevel + 1
FROM dbo.brooks_product AS e
    INNER JOIN ChildIDs AS d
    ON e.parentid = d.id 
   WHERE  showitem='yes' AND tribflag=1
)
SELECT ID,parentid,type,ChildLevel 
FROM ChildIDs
WHERE type in('product','productchild','productgroup','menu')
ORDER BY ChildLevel, type
OPTION (MAXRECURSION 10);

运行查询时,我得到的数据看起来像这样(几千行,在这里被截断):

ID.....parentid.....type.....ChildLevel
35429..0............menu.....1
49205..0............menu.....1
49206..49205........menu.....2
169999.49206........product..3
160531.169999.......productchild..4

等等。

皮特

归根结底,我无法解决这个问题。最后,我动态地编写了一个SQL查询,并将其直接发送到数据库。它工作正常,我不依赖任何直接的用户输入,因此没有SQL注入的机会。但是看来学校太老了!在程序的其余部分中,我将使用EF和LINQ。

感谢您的答复!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用groupby,sum和count将SQL转换为Linq

来自分类Dev

使用sum和group by将sql查询转换为linq

来自分类Dev

将TSQL转换为Linq到实体

来自分类Dev

加入LINQ和实体框架

来自分类Dev

将SQL转换为EF Linq

来自分类Dev

将SQL语句转换为Linq

来自分类Dev

实体框架-使用SelectMany将LINQ方法链转换为查询语法

来自分类Dev

EF Linq无法将SQL查询转换为正确的linq

来自分类Dev

将SQL转换为Linq-To-SQL

来自分类Dev

将sql语句转换为linq MVC

来自分类Dev

将linq转换为sql查询,将linq转换为实体

来自分类Dev

LINQ:将SQL WITH子句转换为LINQ和实体框架

来自分类Dev

快速帮助:将SQL转换为LINQ

来自分类Dev

使用group by将SQL转换为LINQ

来自分类Dev

使用groupby,sum和count将SQL转换为Linq

来自分类Dev

将SQL查询转换为LINQ查询

来自分类Dev

将SQL查询转换为LINQ

来自分类Dev

使用MAX将SQL转换为LINQ

来自分类Dev

如何将SQL转换为Linq

来自分类Dev

使用Linq将实体转换为XML

来自分类Dev

使用案例将SQL group by和order by转换为Linq

来自分类Dev

将SQL查询转换为LINQ语句

来自分类Dev

将TSQL转换为Linq到实体

来自分类Dev

实体框架和Linq Orderby

来自分类Dev

将SQL(complex)转换为LINQ

来自分类Dev

将 sql 转换为 linq(连接和分组依据)

来自分类Dev

将 sql 命令转换为 LINQ

来自分类Dev

我如何将此 SQL 转换为实体框架 LINQ 查询

来自分类Dev

将 SQL 查询转换为使用 AggregateFunctions 和 Where 子句的实体框架