0
関係(1対多)とオブジェクト:xmlの解析。私はxmlファイル持って
BasePlace
(多一と関係)BasePlace
とHallPlan
:
<?xml version='1.0' encoding='windows-1251' standalone='yes'?><XML>
<Result>Ok</Result>
<Error></Error>
<Remark></Remark>
<Data>
<Theatres>
<Theatre ID='1' ShowBusyPlaces='1'> // maybe more than one
<Name><![CDATA[PlaceName]]></Name>
<NameFull><![CDATA[PlaceName]]></NameFull>
<Remark><![CDATA[]]></Remark>
<Address><![CDATA[]]></Address>
<Halls Count='3'>
<Hall ID='1'>
<Name><![CDATA[Redisson]]></Name>
<Levels Count='1'>
<Level ID='1' Geometry='1'> // maybe more than one
<Name><![CDATA[Radisson]]></Name>
</Level>
</Levels>
</Hall>
<Hall ID='3'>
<Name><![CDATA[Test 2]]></Name>
<Levels Count='0'></Levels>
</Hall>
<Hall ID='2'>
<Name><![CDATA[тест]]></Name>
<Levels Count='1'>
<Level ID='4' Geometry='2'>
<Name><![CDATA[ттт]]></Name>
</Level>
</Levels>
</Hall>
</Halls>
</Theatre>
</Theatres>
</Data>
</XML>
そして、私は2つのクラスを持っています: OID, Name, Address
HallPlan
:OID, BasePlaceId, HallId, LevelId
結果上記の例ではなければならない場合:
BasePlace table:
OID Name Address
1 PlaceName
HallPlan table:
OID BasePlaceId, HallId, LevelId
1 1 1 1
2 1 2 4
3 1 3 null
このクエリの戻りはBasePlace
オブジェクト塗りつぶし:(すべてのフィールドとBasePlace
に関連して)適切にHallPlan
を埋めるためにどのように
var places = from element in XDocument.Parse(xml).Descendants("Theatre")
select new BasePlace
{
OIDPremiera = (int) element.Attribute("ID"),
Name = (string) element.Element("Name"),
Address = (string) element.Element("Address"),
};
を?おかげさまで