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 类型,因此您无法直接为其分配字符串,您需要创建一个 en XElement,然后为其分配值:

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);

第一个参数是节点的名称,第二个是内容。如果route.GpxData已经包含一个 Xml 字符串,也可以使用XElement.Parse(route.GpxData)

于 2012-07-02T07:56:36.120 回答