ich den Fehler bekommen:Zyklen enthält, und kann nicht serialisiert werden, wenn Referenznachführmerkmal deaktiviert ist, json.net und WebAPI
Object graph for type 'System.Collections.Generic.List`1[[Proj.Model.Prom, Proj.Model,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' contains cycles and cannot be
serialized if reference tracking is disabled.
darüber Lesen, scheint der Serializer zu sein, aber Json.Net behauptet, Sei die Lösung und ich habe WebApi gelesen und Framework 4.5 hat es standardmäßig. Also kommt es standardmäßig? Wenn ja, warum bekomme ich diesen Fehler immer noch?
Danke! Guillermo.
EDIT: Hinzufügen von Code
using System;
using System.Collections.Generic;
using System.Data.Spatial;
namespace Proj.Model
{
public class Prom
{
public Prom()
{
this.Stores = new List<Store>();
this.Branches = new List<Branch>();
this.Products = new List<Product>();
}
public int Id { get; set; }
public string Name { get; set; }
public DbGeography Location { get; set; }
public string Latitude { get; set; }
public string Longitude { get; set; }
public int StateId { get; set; }
public int CategoryId { get; set; }
public virtual ICollection<Store> Stores { get; set; }
public virtual ICollection<Branch> Branches { get; set; }
public virtual ICollection<Product> Products { get; set; }
public virtual Category Category { get; set; }
public virtual State State { get; set; }
}
}
using System;
using System.Collections.Generic;
namespace Proj.Model
{
public class Category
{
public Category()
{
this.Proms = new List<Prom>();
}
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<Prom> Proms { get; set; }
}
}
Dann etwas wie folgt ausgeführt liefert den Fehler
public IEnumerable<Category> GetList(int estadoId, string idTiposTarjetasList)
{
var ids = "1,2,3,4".Split(',');
var intIds = ids.Select(int.Parse);
var Categories = Uow.Categorias.GetAllIncluding(c => c.Proms).ToList();
foreach (var category in Categories)
{
var proms = category.Proms.Where(p => intIds.Contains(p.Id) && p.StateId == stateId).ToList();
category.Proms = proms;
}
return Categories
}
sehen Sie das gleiche Problem, wenn Sie Proxies deaktivieren? (http://msdn.microsoft.com/en-us/library/system.data.entity.infrastructure.dbcontextconfiguration.proxycreationenableed(v=VS.103).aspx) – Pawel