• 递归删除树结构数据


    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();

            }

  • 相关阅读:
    Flip Game 分类: POJ 2015-06-15 14:59 22人阅读 评论(0) 收藏
    Dirichlet's Theorem on Arithmetic Progressions 分类: POJ 2015-06-12 21:07 7人阅读 评论(0) 收藏
    Binary Tree 分类: POJ 2015-06-12 20:34 17人阅读 评论(0) 收藏
    Self Numbers 分类: POJ 2015-06-12 20:07 14人阅读 评论(0) 收藏
    Who's in the Middle 分类: POJ 2015-06-12 19:45 11人阅读 评论(0) 收藏
    IP Address 分类: POJ 2015-06-12 19:34 12人阅读 评论(0) 收藏
    Doubles 分类: POJ 2015-06-12 18:24 11人阅读 评论(0) 收藏
    The 3n + 1 problem 分类: POJ 2015-06-12 17:50 11人阅读 评论(0) 收藏
    Counterfeit Dollar 分类: POJ 2015-06-12 15:28 19人阅读 评论(0) 收藏
    Maya Calendar 分类: POJ 2015-06-11 21:44 12人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/quietwalk/p/2287668.html
Copyright © 2020-2023  润新知