linq - 将 LINQ 对象序列化为 JSON 字符串 - 巨大的字符串

标签 linq serialization json.net

我正在使用 LINQ 访问我的数据库,从而获得一个 LINQ 创建的对象,我想将该对象作为 JSON 对象发送到浏览器(这是一个网络服务)。现在效果很好,但是当我将一些测试数据添加到数据库时(每个表中大约有 10-20 个条目),这会失败得很惨。原因是 LINQ 对象包含所有引用的对象。这变得非常快。例如。每个资源类型包含其所有资源,其中包含所有保留行,其中包含每个保留..

关于我应该如何解决这个问题,您有什么建议吗?我可以设置序列化程序中的设置吗?我用 json.net用于序列化对象。或者 LINQ 中是否有一些设置?

在最好的情况下,我不想在序列化之前创建新对象,因为直接序列化 LINQ 对象非常方便:)

最佳答案

最佳做法(至少目前)是不序列化 LINQ to SQL 对象或 Entity Framework 实体。主要原因是它们包含来自基类的依赖于实现的数据。

相反,序列化您想要序列化的内容。使用与您要发送的内容完全匹配的数据传输对象,并在发送前从 LINQ to SQL 对象复制到它们中。

关于linq - 将 LINQ 对象序列化为 JSON 字符串 - 巨大的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1086866/

相关文章:

c# - 如何在 Linq 查询中获取 'named' 元组组件?

c# - 在 EF Core 2.0 中动态访问表

php - 为什么反序列化嵌套在 Wordpress 核心中的另一个反序列化函数中?

c# - 使用动态条件过滤 JSON 数组

json - 将 JSON 发布数据转换为对象数组

c# - 如何将Jobject追加到Jproperty的Jarray中?

c# - LINQ 按时间段聚合和分组

c# - 当上下文中不存在 where/select 时,在包含 Include 的查询中使用 where/select ?相关表上的Where 是否需要包含?

php - 在 laravel 中反序列化数据

c++ - 为什么在成员函数中返回对 ostream 对象的引用以进行序列化