我一直在閱讀關於實體框架上下文中使用Linq實體和不同的可能序列化器:Binary,XmlSerializer和DataContractSerializer的實體圖的序列化。 正如我所理解的二進制和XmlSerializer序列化實體沒有它的關係。在關係序列化的情況下,由於生成的xml文件結構的性質(對於XmlSerializer),會導致問題。 除非延遲加載被禁用,否則DataContractSerializer會將圖形的整個深度序列化。實體框架和DataContractSerializer
我的問題是:我想序列化一部分圖。例如,如果我有一個實體A和三個相關實體B,C和D,那麼只有B和D會與A序列化。我想使用DataContractSerializer。如果我刪除不需要的導航屬性的[DataMemberAttribute],它會起作用嗎?
我將Lazy加載屬性保持爲true,並嘗試使用有限圖表:Northwind數據庫:訂單(主要實體),客戶序列化以及員工和訂單詳細信息不是。但是這是一個選擇實體的問題。客戶在訂單旁邊的數據模型中沒有關係,因此序列化它不會導致問題。然而,員工是一個更復雜的實體,並且在不禁用延遲加載的情況下對其進行序列化將在反序列化時引發異常。 – Rahma