DataContractSerializer

DataContractSerializer

我一直在阅读有关在实体框架上下文中使用Linq对实体和不同的可能的序列化程序:Binary,XmlSerializer和DataContractSerializer进行实体图序列化的信息。
据我了解,二进制文件和XmlSerializer会在没有实体关系的情况下序列化实体。如果将关系序列化,则由于生成的xml文件结构的性质(对于XmlSerializer),将导致问题。
除非禁用了延迟加载,否则DataContractSerializer会在整个深度上序列化图形。

我的问题是:我想序列化图的一部分。例如,如果我有一个实体A和三个相关的实体B,C和D,则只有B和D会被序列化为A。我想使用DataContractSerializer。如果我删除了不需要的导航属性的[DataMemberAttribute],那行得通吗?

最佳答案

您实际上可以禁用延迟加载,序列化/反序列化,然后重新启用延迟加载。

context.ContextOptions.LazyLoadingEnabled = false;

StackOverflow Source

关于c# - Entity Framework 和DataContractSerializer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7037734/

10-09 13:55