dlaczego w web api zwracanie encji, która ma relację jeden do wielu, powoduje błąd?

Faceci Mam relację Jeden do wielu do tej samej klasy o nazwie użytkownik,
Zwracam jedną instancję użytkownika w metodzie web apis get, która działa dobrze, o ile nie mam żadnej

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 

To jest mój GetMethod

[HttpGet]
        public Models.User   Authenticate()
        {
            try
            {
                return   db.Users.SingleOrDefault(x => x.ID == 0 ) ; 
            } 
            catch
            {
                return null;
            }
        }

Jeśli otrzymam i zwrócę obiekt użytkownika, otrzymam błąd ciosu

Czy ktoś może mi pomóc naprawić ten błąd poniżej?

{"Message": "Wystąpił błąd.", "ExceptionMessage": "Typ 'ObjectContent`1' nie mógł serializować treści odpowiedzi dla typu treści 'text / html; charset = utf-8'.", "ExceptionType „:„ System.InvalidOperationException ”,„ StackTrace ”: null,„ InnerException ”: {„ Message ”:„ Wystąpił błąd. ”,„ ExceptionMessage ”:„ Wykryto pętlę odniesienia z typem „System.Data.Entity.DynamicProxies .Friend_E5C79F4736EB2750392FFC7061B18E9C12F15F9583409603C75C5D1B1F7358D4 '. Ścieżka' Friends1 [0] .User.Friends '. "," ExceptionType ":" Newtonsoft.Json.JsonSerializationException "," StackTrace ":" w Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CheckForCircularReference (JsonWriter writer, CheckForCircularReference (JsonWriter writer, Object wartość, właściwość JsonProperty, umowa JsonContract, JsonContainerContract containerContract, JsonProperty containerProperty) rw Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList (program zapisujący JsonWriter, wartości IWrappedCollection, umowa JsonArrayContract, element JsonProperty, JsonContainerCon tract collectionContract, JsonProperty containerProperty) rw Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue (program zapisujący JsonWriter, wartość Object, JsonContract valueContract, element JsonProperty, JsonContainerContract containerContract, JsonProperty containerProperty) n w Newtonsoft.Json.Serialization. JsonSerializerInternalWriter.SerializeObject (program zapisujący JsonWriter, wartość Object, umowa JsonObjectContract, element JsonProperty, JsonContainerContract collectionContract, JsonProperty containerProperty) nw Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue (program zapisujący JsonWriter, wartość Object, JsonContract valueContract, element JsonWriter, wartość obiektu, JsonContract valueContract, element JsonPrerty, JsonContainerContContract, element JsonProperty, JsonContainerContract, element JsonProperty, JsonContainerContract, element JsonProperty, JsonContainerContract, element JsonProperty, JsonContainerContract containerContract, JsonProperty containerProperty) rw Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject (JsonWriter writer, wartość Object, JsonObjectContract kontrakt, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerPr operty) rw Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue (JsonWriter writer, wartość Object, JsonContract valueContract, element JsonProperty, JsonContainerContract containerContract, JsonProperty containerProperty) nw Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Json.Serialization.JsonSerializerInternalWriter.Json.Serialization.JsonSerializerInternalWriter.Json.Serialization.JsonSerializerInternalWriter.Json.Serialization.JsonSerializerInternalWriter.Serialize.JsonSerializerInternalWriter.SerializeList ( Pisarz JsonWriter, wartości IWrappedCollection, umowa JsonArrayContract, członek JsonProperty, JsonContainerContract collectionContract, JsonProperty containerProperty) nw Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue (program zapisujący JsonWriter, wartość Object, JsonContract valueContract, element JsonProperty, JsonContainerContract containerContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty memberProperty, JsonContainerContract containerContract, JsonProperty memberProperty, JsonContainerContract containerContract, JsonProperty memberProperty, JsonContainerContract containerContract, JsonProperty memberProperty r nw Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject (JsonWriter writer, wartość Object, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) n w Newtonsoft.Json.Serializa tion.JsonSerializerInternalWriter.SerializeValue (JsonWriter writer, Wartość obiektu, JsonContract valueContract, element JsonProperty, JsonContainerContract containerContract, JsonProperty containerProperty) rw Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize (JsonWriter jsonWriter, Wartość obiektu) Newtonsoft.Json.JsonSerializer.SerializeInternal (JsonWriter jsonWriter, wartość obiektu) rw Newtonsoft.Json.JsonSerializer.Serialize (JsonWriter jsonWriter, wartość obiektu) rw System.Net.Http.Formatting.JsonMediaTypeFormatter. <> c__DisplayClassd.b__c () r n w System.Threading.Tasks.TaskHelpers.RunSynchronously (akcja akcji, token znacznika anulowania) "}}

questionAnswers(2)

yourAnswerToTheQuestion