[英]Generating multiple rows in the same table from the same object structure
簡而言之,我正在嘗試獲取 XML 數據並將其存儲在表中。 目前給我帶來問題的結構如下所示:
<Event>
<PhaseOne>...</PhaseOne>
<PhaseTwo>...</PhaseTwo>
<PhaseThree>...</PhaseThree>
<EventID>12345</EventID>
<EventDate>09/09/09</EventDate>
</Event>
最終結果是我的 Event 表中的 3 行(每個<Phase>
行)。 每行不僅需要各自<Phase>
元素內的數據,還需要父級值,例如<EventID>
。
我有XSD.exe
生成的類來反序列化 XML,但我不知道如何配置我的 EF 代碼優先映射以生成正確的結果。
我以為我會簡單地將 map 每個<Phase>
class 放到同一張表中,但是我不確定如何將 map 到該行中的父級別值( <EventID>
)列中。
不幸的是,我無法更改 XML 或表模式。
您顯然需要將反序列化類型和持久化類型分開 - 它們不能相同,因為您的持久化類型需要與反序列化類型不同的結構。 您將無法為反序列化類型設置映射,因為 EF 不支持您想要的。 您的選擇是:
XmlDocument
、 XmlReader
或XElement
手動處理 XML 。 直接從讀取 XML 填充您的持久類型我的解決方案
我將EventID
和EventDate
成員的副本添加到每個Phase
class ,然后在反序列化后手動填充它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.