0
У меня есть следующий запрос, и я хочу записать это в Linq (используя C#). Как я должен это делать?Перевести SQL-запрос на запрос linq
declare @parentId bigint
set @parentId = (select ArticlePart from tbl_Article where ArticleID = 70001)
declare @ids varchar(100)
set @ids=''
while @parentId is not null
begin
set @ids = @ids +CAST(@parentId as varchar(50))+','
set @parentId = (select ArticlePart from tbl_Article where ArticleID = @parentId)
end
Для лучшей производительности вы должны написать это как [рекурсивный CTE] (Http: // MSDN. microsoft.com/en-us/library/ms186243(v=sql.105).aspx) в SQL. Не linq. – Magnus
Linq не может управлять потоком управления, а также не может выполнять рекурсивные CTE. Я бы посоветовал вам написать рекурсивный CTE, как предлагает Магнус, а затем использовать либо EF, либо L2S или nHibernate, чтобы выполнить сопоставление результатов запроса с объектами. – Aron
проверить Linqer http://www.sqltolinq.com/ –