2010-10-21 4 views
1

La requête suivante est quelque chose dont j'ai hérité d'une ancienne application qui ajoute 2 attributs à un fichier Excel stocké dans la base de données.Mise en forme de l'ancienne requête Query to LINQ

SELECT 
    row_number() over(order by id) as num 
    , [id] as mailsort 
    , 0 as pages 
    , [xmlRecord].query('/sst-statement/*') 
FROM dbo.RPA200_preproc AS [sst-statement] 
WHERE rpatype = 201 
ORDER BY id for xml auto 

retourne un XML commençant par

<sst-statement num="1" mailsort="32" pages="0"> 

maintenant, le SQL devrait se traduire par une déclaration LINQ. Est-ce que cela est possible similaire à cette requête ou serait-il préférable de récupérer le XML de la base de données, puis de changer le XML?

Répondre

1
SELECT 
row_number() over(order by id) as num, 
[id] as mailsort, 
0 as pages, 
[xmlRecord].query('/sst-statement/*') 
FROM dbo.RPA200_preproc as [sst-statement] 
where rpatype = 201 
order by id for xml auto 

transformé en

int i=0; 
var Query = 
FROM I in dbo.RPA200_preproc 
WHERE rpatype = 201 
order by id 
SELECT I.id; 
foreach(var Item in Query) 
{ 
    new XElement("sst-statement", new XAttribute("num", i), new XAttribute("mailsort" = Item), new XAttribute("Pages",(int)0)); 
    i++; 
} 

Je pense :)

+0

merci pour la réponse. Je ne peux pas le tester pour le moment, en raison d'autres travaux ayant passé cela. Je vais le tester dès que je peux. – Andy