2009-09-28 8 views
0

Si j'ai utilisé LINQ pour extraire des résultats de la base de données, y a-t-il un moyen de générer automatiquement ce code XML?Création de code XML à partir d'un résultat LINQ

Par exemple:

DataClasses1DataContext db = new DataClasses1DataContext(C_CONN_STRING); 
var q = from stock in db.GetTable<Stock>() 
     where stock.Group == 1 
     select stock; 

foreach(Stock s in q) 
{ 
    //automatically create XML document here? 
} 

Désolé si cela est une question vraiment fondamentale, toute aide appréciée

Répondre

7

Nous ne connaissons pas le contenu exact de votre objet Stock, et nous ne savons pas la forme du XML que vous voulez générer, c'est donc juste une supposition sauvage ...

DataClasses1DataContext db = new DataClasses1DataContext(C_CONN_STRING); 
    var q = from stock in db.GetTable<Stock>() 
      where stock.Group == 1 
      select stock; 

    XDocument doc = new XDocument(); 
    foreach(Stock s in q) 
    { 
     doc.Add(
      new XElement("Stock" 
       new XAttribute("Group", stock.Group), 
       new XAttribute("Product", stock.Product), 
       new XAttribute("Quantity", stock.Quantity))); 
    } 
+0

Ahh, vous étiez plus vite .. :) – Philippe

1

vous pouvez utiliser VB pour le faire, car il prend en charge les littéraux XML dans le code.

Si vous devez aller pour C#, vous pouvez utiliser XElement (exemple tiré de C# in Depth):

var users = new XElement("users", 
    from user in SampleData.AllUsers 
    select new XElement("user", 
     new XAttribute("name", user.Name), 
     new XAttribute("type", user.UserType)) 
); 

qui produira quelque chose comme ceci:

<users> 
    <user name="Tim Trotter" type="Tester" /> 
    <user name="Tara Tutu" type="Tester" /> 
    <user name="Deborah Denton" type="Developer" /> 
    <user name="Darren Dahlia" type="Developer" /> 
    <user name="Mary Malcop" type="Manager" /> 
    <user name="Colin Carton" type="Customer" /> 
</users> 
Questions connexes