LINQ를 사용하여 데이터베이스의 일부 필드를 삽입하려고합니다. 이 필드 중 하나에는 XML 데이터 (GPX)가 들어 있습니다. 나는 다음과 같은 코드를 실행하면LINQ를 통해 데이터베이스에 XML 데이터를 삽입하는 중 오류가 발생했습니다.
: 나는이 route.GpxData
이 유형의 문자열을 가지고 있는데 XML로이 유형을 변환의 말씀을 전합니다
Name cannot begin with the
'<'
character, hexadecimal value0x3C
:
rtlq.GpxData = new XElement(route.GpxData);
을 나는이 예외를 얻을.
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 here
rtlq.GpxData = new XElement(route.GpxData);
rtlq.CreationTime = route.Time;
aspdb.RouteLinqs.InsertOnSubmit(rtlq);
aspdb.SubmitChanges();
int k1;
System.Data.Linq.ChangeSet cs1 = aspdb.GetChangeSet();
k1=cs1.Inserts.Count();
TrackPointlinq trlq = new TrackPointlinq();
foreach (var trackpoint in route.TrackPoints)
{
trlq.RouteFK=route.Id;
trlq.TrackTime=trackpoint.Time;
trlq.Latitude=(float) trackpoint.Latitude;
trlq.Longitude=(float)trackpoint.Longitude;
trlq.Elevation=trackpoint.Elevation;
}
aspdb.TrackPointlinqs.InsertOnSubmit(trlq);
aspdb.SubmitChanges();
int k2;
System.Data.Linq.ChangeSet cs2 = aspdb.GetChangeSet();
k2 = cs2.Inserts.Count();
if ((k1 == 0) && (k2 == 0))
{
return 1;
}
else
return 0;
}
당신이 날이 문제를 해결하는 데 도움시겠습니까 : 여기 내 전체 코드? XML 파일의
편집 샘플 :
<?xml version="1.0" encoding="UTF-8"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpsies="http://www.gpsies.com/GPX/1/0" creator="GPSies http://www.gpsies.com - GpsiesTrack" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.gpsies.com/GPX/1/0 http://www.gpsies.com/gpsies.xsd">
<metadata>
<name>GpsiesTrack</name>
<link href="http://www.gpsies.com/">
<text>GpsiesTrack on GPSies.com</text>
</link>
<time>2012-06-26T18:58:39Z</time>
</metadata>
<trk>
<name>GpsiesTrack on GPSies.com</name>
<trkseg>
<trkpt lat="50.81482934" lon="12.90653228">
<ele>305.00000</ele>
<time>2012-05-01T00:00:00Z</time>
</trkpt>
<trkpt lat="50.85364209" lon="12.92404174">
<ele>297.00000</ele>
<time>2012-05-01T00:15:27Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>
XElement 대신 XmlDocument 여야합니까? – JohnnBlade
route.GpxData의 값인 –
을 게시하여 xml을로드해야합니다. XmlDocument 사용하여 doc = new XmlDocument(); doc.LoadXml (route.GpxData); – ZafarYousafi