c# - 将 Entity Framework 对象转换为 JSON 对象

标签 c# asp.net json entity-framework

我试图让通用处理程序根据我的实体类型 SYSTEM_AUDIT_SHEET 发布 JSONJ 对象:

SYSTEM_AUDIT_SHEET sheet = ctx.SYSTEM_AUDIT_SHEET
                              .Where(s => s.SYSTEM_KEY == system_key_dec)
                              .Select(s => s)
                              .OrderByDescending(s => s.AUDIT_SHEET_VERSION)
                              .First();

HttpContext.Current.Response.Write(serializer.Serialize(sheet));

但是我得到以下错误:

A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.SYSTEM_AUDIT_SHEET_521A7B786A51FC0F83641182DD72C8DFE6C082418D30BBB977B403409A74CE17'.

为什么我不能将实体转换为 JSON?

最佳答案

您不能将对象转换为引用自身的 json,因为这会创建一个无限长的 json 字符串。

例如,以下伪代码将无法工作,因为它设置了循环引用(Dog >> Bone >> Dog...):

class Dog {
    private Bone myBone;
    public Dog() {
        myBone = new Bone(this);
    }
}

class Bone {
    private Dog buriedBy;
    public Bone(Dog d) {
        buriedBy = d;
    }
}

通过谷歌搜索“json 循环引用”似乎有一些很好的解决方案。查看前两个堆栈溢出链接。

关于c# - 将 Entity Framework 对象转换为 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7876363/

相关文章:

c# - 获取 map 的 View 边界

c# - 如何在 C# 中返回字符串列表

asp.net - 通过数据API将视频从asp.net网站上传到youtube失败

java - 错误: expected END_ARRAY but was STRING - only on specific phones when using mobile internet

java - 将 & 替换为 & 使用 Jackson ObjectMapper

php - Symfony 表格 : How to replace form class/retrieve all extra data?

c# - 如何将sql server express数据库连接到VS 2017

c# - 评论会减慢我网页的执行时间吗?

c# - 我如何将图像绑定(bind)到 <asp :Image/> tag in Form View

c# - 我可以显示 PDF,但不允许在网站中链接到它吗?