IQueryable序列化(web api)

spo*_*rts 6 serialization iqueryable asp.net-web-api

为什么这不起作用?:

        var surveys = db.Surveys.Where(s => s.Author.UserId == user.UserId);

        return from survey in surveys
               select new
               {
                   surveyId = survey.SurveyId,
                   title = survey.Title
               };
Run Code Online (Sandbox Code Playgroud)

而这一点,有一个小小的改变,是?:

        var surveys = db.Surveys.Where(s => s.Author == user);

        return from survey in surveys
               select new
               {
                   surveyId = survey.SurveyId,
                   title = survey.Title
               };
Run Code Online (Sandbox Code Playgroud)

它会引发序列化错误

The 'ObjectContent`1' type failed to serialize the response body for content type 
'application/xml; charset=utf-8'.  (...)
Run Code Online (Sandbox Code Playgroud)




我很好解决这个问题,但我在这里(下面)有同样的错误,并且不能以同样的方式解决它:

var surveys = db.Surveys.Where(s => s.AnswerableBy(user));
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 0

您看到的异常是一般异常,可能由多种因素引起。检查InnerException序列化异常的属性,找出导致序列化失败的具体原因。