2009-09-28 3 views
0

Если я использовал LINQ для извлечения результатов из базы данных, есть ли способ, которым я могу автоматически получить это для генерации XML?Создание XML из результата LINQ

Например:

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? 
} 

К сожалению, если это такой действительно основной вопрос, любая помощь оценили

ответ

7

Мы не знаем точное содержание вашего Stock объекта, и мы не знаем, форма XML вы хотите произвести, так что это просто дикая догадка ...

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

Ааа, вы были быстрее .. . :) – Philippe

1

вы можете использовать VB, чтобы сделать это, так как она поддерживает XML-литералы в коде.

Если вы должны пойти на C#, вы можете использовать XElement (пример взят из 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)) 
); 

Который будет производить что-то вроде этого:

<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> 
Смежные вопросы