0

Linqを使用してクエリを記述し、コードの一部で文字列をXMLに割り当てようとしましたが、エラーが発生しました。

タイプ「文字列」を「System.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();
}

どうすれば問題を解決できますか?

4

2 に答える 2

2

GpxDataはデータベース内のXMLタイプであるため、文字列を直接割り当てることはできません。enXElementを作成してから、値を割り当てる必要があります。

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

route.GpxData文字列型はどこですか

于 2012-07-02T07:54:53.613 に答える
1

XElementを使用している場合は、次のようなテキストコンテンツのみを取得できます。

string content = someXElement.Value

完全なノードが必要な場合は、を使用する必要がありますXElement.ToString()

更新:最新の編集後、実際に新しいXElementが必要であることがより明確になります。

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

最初のパラメーターはノードの名前で、2番目のパラメーターはコンテンツです。route.GpxDataすでにXml文字列が含まれている場合は、次を使用することもできますXElement.Parse(route.GpxData)

于 2012-07-02T07:56:36.120 に答える