Pierwotnie zadałem to pytanie: How Do I Resolve "A specified Include path is not valid"?, na które odpowiedziano, a moja funkcja .Include() działa teraz, jednak gdy serialser spróbuje działać, to magia, dostaję następujący błąd:Błąd podczas serializacji kodu EF Pierwsze dane 5.0 w WebAPI Controller
You must write an attribute 'type'='object' after writing the attribute
with local name '__type'.
Oto co robię, aby przywrócić dane:
var everything = dc.Categories
.Include(c => c.Products);
moich definicji klasy są dość proste:
public class Category
{
public int CategoryId { get; set; }
public string Title { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
public class Product
{
public int ProductId { get; set; }
public string Title { get; set; }
public virtual Category Category { get; set; }
}
public class ProductDataContext : DbContext
{
public DbSet<Category> Categories { get; set; }
public DbSet<Product> Products { get; set; }
}
Próbowałem również usunąć "wirtualne", ale potem otrzymałem odwołania kołowe. Próbowałem ustawić setter na ICollection Products private (zgodnie z sugestią tutaj: http://forums.asp.net/t/1773164.aspx/1), który otrzymuje błąd do wyczyszczenia, ale wtedy moje produkty nie są częścią zwróconego JSON.
Co muszę zrobić, aby dane były przekształcane do postaci szeregowej z kategoriami i ich produktami?
EDIT Tu był ślad stosu ja trafiałem:
[SerializationException: Object graph for type 'System.Collections.Generic.List`1[[Test.Models.Product, Test.Models, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' contains cycles and cannot be serialized if reference tracking is disabled.]
System.Web.Http.WebHost.HttpControllerHandler.EndProcessRequest(IAsyncResult result) +30206
System.Web.Http.WebHost.HttpControllerHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +10
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9478661
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +178
Co to jest ślad stosu ? – SLaks
Dodałem ślad stosu, a także rozwiązanie poniżej, wykopałem z kilku innych postów i zszytą razem. – MisterJames
... i jeszcze raz dziękuję za pomoc @SLaks. – MisterJames