【发布时间】:2012-10-07 20:27:24
【问题描述】:
我在尝试使用 Web API 控制器时收到此错误。
Web API 错误:“ObjectContent`1”类型无法序列化内容类型的响应正文
我的控制器中的代码如下
public IEnumerable<Student> GetAllStudents()
{
var allstudents = unitOfWork.StudentRepository.Get(includeProperties: "Groups");
return allstudents;
}
public Student GetStudentByID(Guid id)
{
return unitOfWork.StudentRepository.GetByID(id);
}
我的“学生”班如下
public partial class Student
{
public Student()
{
this.Groups = new HashSet<Group>();
}
public System.Guid StudentID { get; set; }
public string Surname { get; set; }
public string FirstName { get; set; }
public byte[] Timestamp { get; set; }
public virtual Course Course { get; set; }
public virtual ICollection<Group> Groups { get; set; }
}
这两种方法都会导致相同的错误。
我内心的异常如下
类型 'System.Data.Entity.DynamicProxies.Student_4C97D068E1AD0BA62C3C6E441601FFB7418AD2D635F7F1C14B64F4B2BE32DF9A' 带有数据合同名称 '学生_4C97D068E1AD0BA62C3C6E441601FFB7418AD2D635F7F1C14B64F4B2BE32DF9A:http://schemas.datacontract.org/2004/07/System.Data.Entity.DynamicProxies' 预计不会。考虑使用 DataContractResolver 或添加任何 已知类型列表中静态未知的类型 - 例如, 通过使用 KnownTypeAttribute 属性或将它们添加到 传递给 DataContractSerializer 的已知类型列表。
我觉得我需要使用KnownType 属性,但我不确定如何实现它。
任何帮助将不胜感激
【问题讨论】:
标签: asp.net-mvc asp.net-web-api