public List<PRODUCT> GetProductsByProductcategory(decimal productCategoryKey)
{
DBEntities ctx = new DBEntities();
List<PRODUCT> productList = ctx.PRODUCT.Where(p => p.PRODUCT_CATEGORY_KEY == productCategoryKey).ToList();
return productList;
}
有没有办法将每个PRODUCT实体与ctx实例分离,从而删除与其他实体的关系?或者任何其他智能方法来删除相关实体。我的问题是我无法通过关系序列化实体。它导致循环引用异常。我目前的解决方案是使用有效的ctx.ContextOptions.ProxyCreationEnabled = false
。但如果我这样做,我不会得到任何延迟加载。非常感谢帮助。感谢
答案 0 :(得分:0)
由于您要序列化为JSON,我建议使用Json.NET library from James Newton-King。您可以关闭序列化关系。下面是我在关闭ReferenceLooping时使用的序列化方法。
public static string Serialize(object model)
{
var settings = new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
};
return JsonConvert.SerializeObject(model, Formatting.None, settings);
}