zoukankan      html  css  js  c++  java
  • C# Linq删除父级的同时删除子级

    之前使用Include获取外键对象列表后,进行删除,一直报错操作失败: 无法更改关系,因为一个或多个外键属性不可以为 null。。。后面还有一串。尝试了几种方式,比如将u.AlbumList=null或者单独存放到一个list中(不过因为list存储是使用同一空间的,且对于数据库来说,还是在linq数据列表中)

    百度了一下,也没查出什么好用的,不过其中有一点介绍是,使用remove方式。这里的两个类型的删除都需要使用Remove,如果只用一个的话,也还是还会出现之前的错误提示。

     public ErrorInfo DeleteAlbumCategory(List<int> ids)
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    try
                    {
                        using (var dbContext = new ActivityDbContext())
                        {
                            dbContext.AlbumCategorys.Include("AlbumList").Where(u => ids.Contains(u.ID)).ToList().ForEach(u =>
                            {
                                if (u.AlbumList != null)
                                {
                                    u.AlbumList.ForEach(v =>
                                    {
                                        dbContext.Albums.Remove(v);
                                    });
                                }
                                dbContext.AlbumCategorys.Remove(u);
                            });
                            dbContext.SaveChanges();
                            transaction.Complete();
                            return new ErrorInfo() { Error=ErrorCode.Success,Message="删除成功"};
                        }
                    }
                    catch (Exception e)
                    {
                        return new ErrorInfo() { Error = ErrorCode.Exception, Message = e.Message };
                    }
                }
            }

    当然了,最直接的方式就是,数据不使用include获取,而是单独获取,即分开进行删除操作。

    这里并没有开启级联。

  • 相关阅读:
    Kruscal示例程序
    poj 1789 最小生成树prim算法
    取名无力
    最短路dijkstra示例程序
    zoj 1203 最小生成树—kruscal算法
    最小生成树prim算法示例程序
    zoj 1586 最小生成树 prim算法
    poj 1861 Network 最小生成树 kruscal算法
    英国研制出情感机器人能感知主人的悲伤
    微软将发布“群体搜索”
  • 原文地址:https://www.cnblogs.com/danlis/p/7778456.html
Copyright © 2011-2022 走看看