zoukankan      html  css  js  c++  java
  • 递归删除树结构数据

    DeleteBasicProtocolRecursively

    private void DeleteBasicProtocolRecursively(ModelContainer container, string parentId, string strProtocolId)

            {

     

                #region BasicProtocolStructure

     

                var nodes = from node in container.BasicProtocolStructures

                            where node.Pid == parentId

                            select node;

                if (nodes != null && nodes.Count<BasicProtocolStructure>() > 0)

                {

                    foreach (BasicProtocolStructure ps in nodes)

                    {

     

                        container.BasicProtocolStructures.DeleteObject(ps);

                        DeleteBasicProtocolRecursively(container, ps.Id, strProtocolId);

                    }

                }

                #endregion

     

                #region BasicProtocolItem

                var sItems = from item in container.BasicProtocolItems

                             where item.Pid == parentId

                             && item.ProtocolId == strProtocolId

                             select item;

                if (sItems != null && sItems.Count<BasicProtocolItem>() > 0)

                {

                    foreach (BasicProtocolItem bpi in sItems)

                    {

                        container.BasicProtocolItems.DeleteObject(bpi);

                    }

                }

                #endregion

            }

    DeleteBasicProtocolRecursivelyByProtocolId

            //Attention: This method should never set as Operation Contract

            public int DeleteBasicProtocolRecursivelyByProtocolId()

            {

                ModelContainer container = ModelContext.Container;

                if (container == null)

                {

                    return -1;

                }

     

                var BasicProtocolWantToDelete = from c in container.BasicProtocolStructures

                                                where c.Id != "53ebc489-29e8-4e17-9cd1-8f7b485c3334"

                                                && c.Id != "62d93b36-5c2e-426c-912a-5fa103bca694"

                                                && c.Id != "c632d27b-48c1-4566-aef7-2e7d5529a0d2"

                                                && c.Pid == null

                                                select c;

                if (BasicProtocolWantToDelete != null && BasicProtocolWantToDelete.Count<BasicProtocolStructure>() > 0)

                {

                    foreach (BasicProtocolStructure bps in BasicProtocolWantToDelete)

                    {

                        this.DeleteBasicProtocolRecursively(container, bps.Id, bps.Id);

                        container.BasicProtocolStructures.DeleteObject(bps);

                    }

                }

                return ModelContext.SaveChanges();

            }

  • 相关阅读:
    if...else if switch分支结构
    Code大蛇丸 腾讯微博 key
    当GridView中的一项被点中的时候显示的背景图片:android:listSelector="@drawable/choose_gridview"
    手机通讯录
    JDOM和XPATH薛谷雨
    修改myEclipse8.5的默认的工作空间
    用JoyToKey使游戏手柄变键盘或鼠标
    在Spring3中,配置DataSource的方法有五种
    Struts+spring使用随机验证码
    项目部署不到tomcat中的原因和解决方法
  • 原文地址:https://www.cnblogs.com/quietwalk/p/2287668.html
Copyright © 2011-2022 走看看