почему в web api возврат сущности, имеющей отношение один ко многим, вызывает ошибку?
Ребята, у меня есть отношение Один ко многим к тому же классу, называемому пользователем,
Я возвращаю один экземпляр пользователя в веб-API get метод, он работает нормально, так как у меня нет
User
ID | Name
0 | A
1 | B
Friends Table ( This table is used to build the one to many relationship )
User_ID | Friend_ID
1 | 0
0 | 1
Это мой GetMethod
[HttpGet]
public Models.User Authenticate()
{
try
{
return db.Users.SingleOrDefault(x => x.ID == 0 ) ;
}
catch
{
return null;
}
}
Если я получаю и возвращаю объект User, я получаю ошибку удара
Может кто-нибудь, пожалуйста, помогите мне исправить эту ошибку ниже?
{"Message": "Произошла ошибка.", "ExceptionMessage": "Типу ObjectContent`1 'не удалось сериализовать тело ответа для типа содержимого' text / html; charset = utf-8 '.", "ExceptionType ":" System.InvalidOperationException "," StackTrace ": null," InnerException ": {" Message ":" Произошла ошибка. "," ExceptionMessage ":" Обнаружен цикл самоссылки с типом System.Data.Entity.DynamicProxies .Friend_E5C79F4736EB2750392FFC7061B18E9C12F15F9583409603C75C5D1B1F7358D4 '. Path' Friends1 [0] .User.Friends '. "," ExceptionType ":" NewtonSoft.Json.Json значение, свойство JsonProperty, контракт JsonContract, JsonContainerContract containerContract, JsonProperty containerProperty) \ r \ n в Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList (писатель JsonWriter, IWrappedCollection, член JsonArsonsonContainContain, JConsConConConnectContainer tract collectionContract, JsonProperty containerProperty) \ r \ n в Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue (писатель JsonWriter, значение объекта, JsonContract valueContract, член JsonProperty, контейнер JsonContainerContract \ Контракт \ Newton.Jerver.JSON) JsonSerializerInternalWriter.SerializeObject (писатель JsonWriter, значение объекта, контракт JsonObjectContract, член JsonProperty, коллекция JsonContainerContract collectionContract, свойство контейнера ContainerProperty JsonProperty) \ r \ n в значении Newtonsoft.Json.Serialization.JsonSonture, значение класса JC, параметр JsonControl containerContract, JsonProperty containerProperty) \ r \ n в Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject (средство записи JsonWriter, значение объекта, JsonObjectContract, элемент JsonProperty, JsonContainerContract collectionContract, контейнер JsonProperty JsonProperty operty) \ r \ n в Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue (модуль записи JsonWriter, значение объекта, значение JsonContractContract, член JsonProperty, контейнерный JontContainerContract, контейнерный объект JsonContainerContract, объект JsonProperty.Proper.erJer.erver JsonWriter Writer, значения IWrappedCollection, контракт JsonArrayContract, член JsonProperty, JsonContainerContract collectionContract, JsonProperty containerProperty JsonProperty) \ r \ n в Newtonsoft.Json.Serialization.JsonSerializerInternalWriter. ) \ r \ n в Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject (средство записи JsonWriter, значение объекта, контракт JsonObjectContract, член JsonProperty, JsonContainerContract collectionContract, JsonProperty containerProperty JsonProperty) \ r \ n в NewtonserialJ.Json tion.JsonSerializerInternalWriter.SerializeValue (писатель JsonWriter, значение объекта, JsonContract valueContract, член JsonProperty, JsonContainerContract containerContract, JsonProperty containerProperty) \ r \ n в Newtonsoft.Json.Serialization.JronSignerWernerWerver (jsonSerializer \ernerWerner) Newtonsoft.Json.JsonSerializer.SerializeInternal (JsonWriter jsonWriter, значение объекта) \ r \ n в Newtonsoft.Json.JsonSerializer.Serialize (JsonWriter jsonWriter, значение объекта) \ r \ n в System.Net.Http.Formatting.JsonMediaTypematter. c__DisplayClassd.b__c () \ r \ n в System.Threading.Tasks.TaskHelpers.RunSynchronously (действие, действие, токен CancellationToken) "}}