Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从数据库上下文中分离EF实体,删除它们的关系? 公共列表GetProductsByProductcategory(十进制productCategoryKey) { DBEntities ctx=新的DBEntities(); List productList=ctx.PRODUCT.Where(p=>p.PRODUCT\u CATEGORY\u KEY==productCategoryKey).ToList(); 返回产品列表; }_C#_Asp.net_Entity Framework_Serialization - Fatal编程技术网

C# 从数据库上下文中分离EF实体,删除它们的关系? 公共列表GetProductsByProductcategory(十进制productCategoryKey) { DBEntities ctx=新的DBEntities(); List productList=ctx.PRODUCT.Where(p=>p.PRODUCT\u CATEGORY\u KEY==productCategoryKey).ToList(); 返回产品列表; }

C# 从数据库上下文中分离EF实体,删除它们的关系? 公共列表GetProductsByProductcategory(十进制productCategoryKey) { DBEntities ctx=新的DBEntities(); List productList=ctx.PRODUCT.Where(p=>p.PRODUCT\u CATEGORY\u KEY==productCategoryKey).ToList(); 返回产品列表; },c#,asp.net,entity-framework,serialization,C#,Asp.net,Entity Framework,Serialization,有没有办法将每个产品实体从ctx实例中分离出来,从而删除它们与其他实体的关系?或以任何其他智能方式删除相关实体。我的问题是我无法序列化具有关系的实体。这将导致循环引用异常。我目前的解决方案是使用有效的ctx.ContextOptions.ProxyCreationEnabled=false。但如果我这样做,我就不会得到任何懒惰的加载。非常感谢你的帮助。谢谢既然您正在序列化为JSON,我建议您使用。您可以禁用序列化关系。下面是我在关闭ReferenceLooping的情况下使用的序列化方法

有没有办法将每个产品实体从ctx实例中分离出来,从而删除它们与其他实体的关系?或以任何其他智能方式删除相关实体。我的问题是我无法序列化具有关系的实体。这将导致循环引用异常。我目前的解决方案是使用有效的
ctx.ContextOptions.ProxyCreationEnabled=false
。但如果我这样做,我就不会得到任何懒惰的加载。非常感谢你的帮助。谢谢

既然您正在序列化为JSON,我建议您使用。您可以禁用序列化关系。下面是我在关闭ReferenceLooping的情况下使用的序列化方法

    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;
    }

您试图将实体序列化为什么格式?我想这应该可以,但上次我尝试json.net时,每次尝试序列化时都会遇到堆栈溢出。你确定这些关系被删除了,并且没有序列化吗?是的,根据我的经验,它们已经被删除了。如果您真的想确保,您可以将EF实体映射到另一个新类,该类使用完全排除关系,然后序列化该新类。
 public static string Serialize(object model)
 {
     var settings = new JsonSerializerSettings
                     {
                        ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
                     };
     return JsonConvert.SerializeObject(model, Formatting.None, settings);
 }