Я использую Code First. У меня класс класса и класс голосования. Темы имеют голоса.Код Первые данные Аннотации для свойств Backpointer
public class Topic
{
public Guid Id { get; set; }
public string Name { get; set; }
public List<Vote> Votes { get; set; }
}
Класс голосования указывает на тему, чтобы я мог получить тему данного голосования в коде.
public class Vote
{
public Guid Id { get; set; }
public bool IsUp { get; set; }
public DateTime WhenVoted { get; set; }
public Topic Topic { get; set; }
}
Когда я запрашиваю как var topics = context.Topics.Include("Votes");
, я получаю переполнение стека, но если удалить ссылку на тему из проголосовать, он загружает штраф. Я считаю, что есть аннотация данных, которую я могу добавить, чтобы указать, что они представляют одну и ту же взаимосвязь. Может ли кто-нибудь указать мне в правильном направлении, если это так?
В стеке вызовов это повторяется снова и снова, что, по-видимому, указывает на то, что сериализатор пытается рекурсивно отобразить рекурсивные отношения. Поэтому, возможно, говорить, что объект Vote не сериализует свойство Topic, здесь правильный ответ, но если есть ответ аннотации данных, я хотел бы знать, что это такое.
System.Runtime.Serialization.dll!System.Runtime.Serialization.ClassDataContract.WriteXmlValue(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.Runtime.Serialization.XmlObjectSerializerWriteContext context) Unknown
System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle) Unknown
System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle) Unknown
System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool isDeclaredType, bool writeXsiType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle) Unknown
System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerializeReference(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool isDeclaredType, bool writeXsiType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle) Unknown
аннотации http://msdn.microsoft.com/en-us/data/jj591583, включают в себя стек, чтобы другие могли помочь –
Как база данных сначала обрабатывает такие отношения при автогенерации .cs? – Langdon