简而言之,我正在尝试获取XML数据并将其存储在表中。目前给我带来问题的结构如下:
<Event>
<PhaseOne>...</PhaseOne>
<PhaseTwo>...</PhaseTwo>
<PhaseThree>...</PhaseThree>
<EventID>12345</EventID>
<EventDate>09/09/09</EventDate>
</Event>
这样做的最终结果是我的“事件”表中 3行(每个<Phase>
一个)。每行不仅需要相应<Phase>
元素内的数据,还需要父级别值,例如<EventID>
。
我有XSD.exe
生成的类来反序列化XML,但我不知道如何配置我的EF Code First Mappings以生成正确的结果。
我认为我只是将每个<Phase>
类映射到同一个表,但后来我不确定如何将父级别值(<EventID>
)映射到该行中的列。
不幸的是我无法更改XML或表模式。
答案 0 :(得分:0)
您显然需要将反序列化类型与持久类型分开 - 它们不能相同,因为持久化类型需要不同的结构,然后反序列化类型具有。您将无法为反序列化类型设置映射,因为EF不支持您想要的内容。您的选择是:
XmlDocument
,XmlReader
或XElement
手动处理XML。直接从read XML 答案 1 :(得分:0)
我的解决方案
我将EventID
和EventDate
成员的副本添加到每个Phase
类,然后在反序列化后手动填充它们。