1
我們使用LINQ to SQL,我們在遷移到Windows Azure的過程中一個相當大的ASP.NET MVC項目實體。序列化LinqToSql產生保持關係和延遲加載
現在,我們需要將對象序列,用於存儲在天青分佈式緩存,並設置「序列化模式」到「單向」在.dbml文件,並因此自動地裝飾生成的類和屬性DataContract
和DataMember
相應的屬性,似乎是推薦的方式。但是,這會導致LINQ to SQL尚未加載的任何關係在序列化並保存爲null
時丟失。
什麼是程序的首選方式,同時考慮到一兩件事情:
- 如前所述,這是一個相當大的項目與生成的*了.Designer.cs文件是接近1.5 MB
- 禁用延遲加載完全將最有可能是一個很大的 性能命中由於許多深階級關係。
- 更改ORM工具是我們正在考慮的東西,但在同一時間,交換平臺這樣做,很可能是一件壞事。
如果這可以歸結爲以某種方式手動指定要在整個項目中序列化哪些對象和關係;使用類似protobuf網一些額外的性能提升可能不會是一個巨大的進步。
我的意見:不要使用生成的實體進行序列化/ RPC。建立一個由您控制的獨立運輸模型,並且符合要求。你迫使一個模型服務兩種不同的用例,在許多不同的地方造成麻煩。通過重用實體類節省的工作量是負面的。 – usr