C#DataSet到xml,关系名称为标记名称

时间:2018-10-30 12:17:09

标签: c# xml dataset

我想从DataSet创建一个嵌套的XML。 生成的Xml看起来像这样:

<?xml version="1.0" encoding="utf-16"?>
<Album>
  <Name>Best-Album</Name>
  <Title>Album Title</Title>
  <Description>Some explanation.</Description>
  <CoverImgIndx>2</CoverImgIndx>
  <Images>
    <Image>
      <AlbumName>Best-Album</AlbumName>
      <indx>0</indx>
      <filepath>C:\Images\file1.jpg</filepath>
    </Image>
    <Image>
      <AlbumName>Best-Album</AlbumName>
      <indx>1</indx>
      <filepath>C:\Images\file2.png</filepath>
    </Image>
    <Image>
      <AlbumName>Best-Album</AlbumName>
      <indx>2</indx>
      <filepath>C:\Images\file3.jpg</filepath>
    </Image>
  </Images>
</Album>

所以我有一个表Album和一个表Image,它们之间有Album-> Name和Image-> AlbumName之间的关系。

现在,我可以使用此代码创建的所有内容:

DataRelation relation = new DataRelation("Images",
                                                  dataSet.Tables["Album"].Columns["Name"],
                                                  dataSet.Tables["Image"].Columns["AlbumName"],
                                                  true);
         relation.Nested = true;
         dataSet.Relations.Add(relation);
         dataSet.WriteXml("Test-Sql.xml");

..是此XML:

<?xml version="1.0" encoding="utf-16"?>
<Album>
  <Name>Best-Album</Name>
  <Title>Album Title</Title>
  <Description>Some explanation.</Description>
  <CoverImgIndx>2</CoverImgIndx>
   <Image>
     <AlbumName>Best-Album</AlbumName>
     <indx>0</indx>
     <filepath>C:\Images\file1.jpg</filepath>
   </Image>
   <Image>
     <AlbumName>Best-Album</AlbumName>
     <indx>1</indx>
     <filepath>C:\Images\file2.png</filepath>
   </Image>
   <Image>
     <AlbumName>Best-Album</AlbumName>
     <indx>2</indx>
     <filepath>C:\Images\file3.jpg</filepath>
   </Image>
</Album>

就像您看到的关系名称不习惯用作父标记一样。可以将关联名称为“ Images”的Image标签作为父标签吗?

0 个答案:

没有答案