почему в 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) "}}

Ответы на вопрос(2)

Ваш ответ на вопрос