2012-07-02 207 views
0

我已經寫了一個查詢使用LINQ和我的代碼一個部分,我嘗試分配字符串轉換爲XML,但發生錯誤:將字符串轉換爲XML

無法隱式轉換類型‘字符串’到'系統.Xml.Linq.XElement」

這是我的代碼:

public int Save(Route route) 
{    
    aspnetdbDataContext aspdb = new aspnetdbDataContext(); 
    RouteLinq rtlq=new RouteLinq(); 
    rtlq.UserId = route.UserId; 
    rtlq.SourceName = route.Name; 

    //I have an error hier 
    rtlq.GpxData = route.GpxData; 
    //--------------------------- 
    rtlq.CreationTime = route.Time; 
    aspdb.RouteLinqs.InsertOnSubmit(rtlq); 
    aspdb.SubmitChanges(); 
} 

我怎樣才能解決我的問題?

+0

哪個項目是'XElement'? –

+0

rtlq.GpxData ia XML,我無法使用'Tostring()' – Kabi

+0

您應該使用[''XElement.Parse'](http://msdn.microsoft.com/zh-cn/library/bb468714 .aspx)使其起作用 – V4Vendetta

回答

2

因爲GpxData是XML類型的數據庫,你不能直接指定字符串,你需要創建一個連接的XElement,然後分配給它的價值:

rtlq.GpxData = new XElement(route.GpxData); 

哪裏route.GpxData是字符串類型

1

如果你有一個的XElement,你可以得到的只是文字內容是這樣的:

string content = someXElement.Value 

如果你想完整的節點,則需要使用XElement.ToString()

UPDATE:您最新的編輯後,它更清楚你真正想要一個新的XElement:

rtlq.GpxData = new XElement("GpxData", route.GpxData); 

的第一個參數是節點的名稱,第二個是內容。如果route.GpxData已經包含一個Xml字符串,您也可以使用XElement.Parse(route.GpxData)