我正在使用LINQ访问我的数据库,从而获得一个LINQ创建的对象,我想将其作为JSON对象发送到浏览器(这是一个web服务)。这种方法现在运行良好,但是当我向数据库添加一些testdata时(每个表中大约10-20个条目),这种情况很糟糕。原因是LINQ对象包含所有引用的对象。这变得非常快。例如。每个resourcetype包含其所有资源,其中包含包含每个预留的所有预留行。
关于如何解决此问题,您有什么建议吗?我可以设置序列化器中的设置吗?我使用json.net来序列化对象。或者在LINQ中有一些设置吗?
在最好的情况下,我不想在序列化之前创建新对象,因为直接序列化LINQ对象非常方便:)
答案 0 :(得分:5)
至少在目前,最佳做法是不对LINQ to SQL对象或实体框架实体进行序列化。主要原因是它们包含来自基类的依赖于实现的数据。
而是序列化您想要序列化的内容。使用与您要发送的内容完全匹配的数据传输对象,并在发送之前从LINQ to SQL对象复制到它们中。