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

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

将SQL转换为Linq-To-SQL

来自分类Dev

将TSQL转换为Linq到实体

来自分类Dev

使用Linq将实体转换为XML

来自分类Dev

将TSQL转换为Linq到实体

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

将SQL转换为EF Linq

来自分类Dev

将SQL语句转换为Linq

来自分类Dev

将sql语句转换为linq MVC

来自分类Dev

快速帮助:将SQL转换为LINQ

来自分类Dev

使用group by将SQL转换为LINQ

来自分类Dev

将SQL查询转换为LINQ查询

来自分类Dev

将SQL查询转换为LINQ

来自分类Dev

使用MAX将SQL转换为LINQ

来自分类Dev

如何将SQL转换为Linq

来自分类Dev

将SQL查询转换为LINQ语句

来自分类Dev

将SQL(complex)转换为LINQ

来自分类Dev

将 sql 命令转换为 LINQ

来自分类Dev

加入LINQ和实体框架

来自分类Dev

实体框架和Linq Orderby

来自分类Dev

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