我有一个奇怪的错误。我在试验一种。NET 4.5 Web API、实体框架和 MS SQL Server。我已经创建了数据库,并设置了正确的主键和外键以及关系。
我创造了一个。Edmx 模型并导入了两个表: Employee 和 Department。一个部门可以有很多员工,这种关系是存在的。我使用脚手架选项创建了一个名为 EmployeeController 的新控制器,该控制器使用 Entity Framework 创建了一个具有读/写操作的 API 控制器。在向导中,选择 Employee 作为数据上下文的模型和正确的实体。
创建的方法如下所示:
public IEnumerable<Employee> GetEmployees()
{
var employees = db.Employees.Include(e => e.Department);
return employees.AsEnumerable();
}
当我通过/API/Employee 调用 API 时,会得到这个错误:
“ ObjectContent‘1”类型未能序列化内容类型“ application/json; ... System”的响应正文。InvalidOperationException”,“ StackTrace”: null,“ InnerException”: {“ Message”: “已发生错误。”,“ ExceptionMessage”: “使用‘ System 类型检测到自引用循环。百科。实体。DynamicProxies 动态代理。Employee _ 5D80AD978BC68A1D8BD675852F94E8B550F4CB150ADB8649E8998B7F95422552’。路径’[0]。税务局。雇员」例外类型: 牛顿软件。杰森。“ JsonSerializationException”,“ StackTrace”: “ ..。
为什么它自我引用[0]。税务局。员工?这说不通啊。如果我的数据库中有循环引用,我希望这种情况会发生,但这是一个非常简单的例子。会出什么问题呢?