Consider an ASP.net MVC web application where you use some Ajax for retrieving an object. Let's start from the server-side MVC controller:
public class BaseDataController : Controller
{
private DataRepository repository;
public BaseDataController()
{
repository = new DataRepository();
}
public JsonResult GetOperationDefinitionByCode(string operationCode)
{
return Json(repository.GetOperationDefinitionByCode(operationCode), JsonRequestBehavior.AllowGet);
}
}
public class DataRepository
{
private EntityContext context;
...
public OperationDefinition GetOperationDefinitionByCode(string operationCode)
{
return context.OperationDefinitions.Where(x => x.OperationCode == operationCode).FirstOrDefault();
}
}
So far, so good. Now you call your controller via a GET request, like
http://localhost:40492/basedata/getoperationdefinitionbycode/?operationCode=120. This will call your method, but unfortunately it returns an exception:
A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.OperationDefinition_12123132123....'