У меня странная ошибка. Я экспериментирую с веб-API.NET 4.5, Entity Framework и MS SQL Server. Я уже создал базу данных и установил правильные первичные и внешние ключи и отношения.
Я создал модель .edmx и импортировал две таблицы: Employee and Department. У отдела может быть много сотрудников, и это соотношение существует. Я создал новый контроллер под названием EmployeeController, используя параметры леса для создания контроллера API с помощью операций чтения/записи с использованием Entity Framework. В мастере выберите Employee как модель и правильный объект для контекста данных.
Созданный метод выглядит следующим образом:
public IEnumerable<Employee> GetEmployees()
{
var employees = db.Employees.Include(e => e.Department);
return employees.AsEnumerable();
}
Когда я вызываю свой API через /api/Employee, я получаю эту ошибку:
Тип ObjectContent`1 не смог сериализовать тело ответа для типа контента 'application/json;... System.InvalidOperationException "," StackTrace ": null," InnerException ": {" Сообщение ":" Произошла ошибка. "," ExceptionMessage ":" Исключительный цикл привязки с типом "System.Data.Entity.DynamicProxies.Employee_5D80AD978BC68A1D8BD675852F94E8B550F4CB150ADB8649E8998B7F95422552. Path '[0].Department.Employees'. "," ExceptionType ":" Newtonsoft.Json.JsonSerializationException "," StackTrace ":"...
Почему он сам ссылается на [0].Department.Employees? Это не имеет большого смысла. Я ожидал бы, что это произойдет, если в моей базе данных была круговая ссылка, но это очень простой пример. Что может быть не так?