相关疑难解决方法(0)

JSON.NET错误检测到类型的自引用循环

我试图序列化从实体数据模型.edmx自动生成的POCO类,当我使用时

JsonConvert.SerializeObject 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误发生类型System.data.entity检测到的自引用循环.

我该如何解决这个问题?

serialization json json.net

458
推荐指数
9
解决办法
27万
查看次数

使用DataContractSerializer进行序列化时如何忽略属性?

我使用.NET 3.5SP1和DataContractSerializer来序列化一个类.在SP1中,他们更改了行为,因此您不必在类中包含DataContract/DataMember属性,它只会序列化整个事物.这是我正在使用的行为,但现在我需要忽略序列化程序中的一个属性.我知道一种方法是将DataContract属性添加到类中,并将DataMember属性放在我想要包含的所有成员上.不过,我有理由认为这对我不起作用.

所以我的问题是,是否有一个属性或者我可以使用什么来使DataContractSerializer忽略属性?

.net c# wcf serialization

115
推荐指数
3
解决办法
15万
查看次数

检测到实体框架自引用循环

我有一个奇怪的错误.我正在试验.NET 4.5 Web API,实体框架和MS SQL Server.我已经创建了数据库并设置了正确的主键和外键以及关系.

我创建了一个.edmx模型并导入了两个表:Employee和Department.一个部门可以有很多员工,这种关系存在.我使用scaffolding选项创建了一个名为EmployeeController的新控制器,以使用Entity Framework创建一个带有读/写操作的API控制器.在向导中,选择Employee作为模型,并选择数据上下文的正确实体.

创建的方法如下所示:

public IEnumerable<Employee> GetEmployees()
{
    var employees = db.Employees.Include(e => e.Department);
    return employees.AsEnumerable();
}
Run Code Online (Sandbox Code Playgroud)

当我通过/ api/Employee调用我的API时,出现此错误:

'ObjectContent`1'类型无法序列化内容类型'application/json的响应主体; ... ... System.InvalidOperationException","StackTrace":null,"InnerException":{"Message":"发生错误.","ExceptionMessage":"使用类型'System.Data.Entity.DynamicProxies检测到自引用循环.Employee_5D80AD978BC68A1D8BD675852F94E8B550F4CB150ADB8649E8998B7F95422552' .Path'[0] .Department.Employees'.","ExceptionType":"Newtonsoft.Json.JsonSerializationException","StackTrace":"...

为什么它自引用[0] .Department.Employees?这并没有多大意义.如果我在我的数据库中进行循环引用,我希望这会发生,但这是一个非常简单的例子.怎么可能出错?

c# serialization entity-framework-4 asp.net-web-api

100
推荐指数
10
解决办法
9万
查看次数

检测到自引用循环 - 从WebApi返回数据到浏览器

我正在使用Entity Framework并且在向浏览器中获取父数据和子数据时遇到问题.这是我的课程:

 public class Question
 {
    public int QuestionId { get; set; }
    public string Title { get; set; }
    public virtual ICollection<Answer> Answers { get; set; }
}

public class Answer
{
    public int AnswerId { get; set; }
    public string Text { get; set; }
    public int QuestionId { get; set; }
    public virtual Question Question { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我使用以下代码返回问题和答案数据:

    public IList<Question> GetQuestions(int subTopicId, int questionStatusId)
    {
        var questions = _questionsRepository.GetAll()
            .Where(a => a.SubTopicId == subTopicId …
Run Code Online (Sandbox Code Playgroud)

c# serialization entity-framework json.net asp.net-web-api

78
推荐指数
6
解决办法
8万
查看次数