2009-09-28 86 views
0

如果我已經使用LINQ從數據庫中檢索結果,是否有一種方法可以自動獲取它以生成XML?從LINQ結果創建XML

例如:

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

我們不知道你的股票對象的確切內容,我們不知道要生成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 2009-09-28 10:01:38

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>