Я вполне уверен, что это проблема с отложенной загрузкой, но после прочтения о отложенной загрузке я все еще не приблизился к решению. Я пытался включить и выключить ленивую загрузку безуспешно. Когда я извлекаю узел из базы данных, родительский и дочерний элементы равны нулю, даже если такие объекты существуют в базе данных.
Я также добавил 'IsReference = true' как попытку решить эту проблему.
Я сделал элементы данных, которые являются ссылками на объекты, виртуальными в какой-то момент, но у меня были проблемы с сериализацией с прокси.
DatabaseContext.cs
public class DatabaseContext : DbContext
{
public DatabaseContext() : base("DatabaseName")
{
Configuration.LazyLoadingEnabled = false;
}
public DbSet<Node> Nodes { get; set; }
}
Node.cs
[DataContract(IsReference = true)]
public partial class Node
{
[DataMember]
public long ID { get; private set; }
[DataMember]
public Node Parent { get; set; }
[DataMember]
public ICollection<Node> Children { get; set; }
}