簡體   English   中英

如何刪除帶有孩子的根-Entity Framework

[英]How to remove root with children - Entity Framework

我無法刪除所有子節點的root用戶。此代碼是錯誤的,但我找不到解決方案。 數據庫

id-是要刪除的帶標記的根。

public void RemoveLeaf(int id)
{
    using (var context = new TreeDBtestEntities())
    {
        using(var dbContextTransaction = context.Database.BeginTransaction())
        {
            try
            {
                var root = context.DynamicTrees.Where(x => x.Id == id).FirstOrDefault();
                int? idLeaf = root.Id;
                while (idLeaf != null)
                {
                    context.DynamicTrees.RemoveRange(context.DynamicTrees.Where(x => x.Id == id));

                    var result = context.DynamicTrees.Where(x => x.ParentId == idLeaf).FirstOrDefault();
                    if (result != null)
                        RemoveLeaf(result.Id);
                    idLeaf = null;

                    context.SaveChanges();
                }
                dbContextTransaction.Commit();
            }
            catch
            {
                dbContextTransaction.Rollback();
            }
        }
    }
}

我要刪除所有孩子的父母。 此代碼刪除了父級,並且僅刪除了一些子級。

你能幫助我嗎?

我相信您可以刪除遞歸並僅使用RemoveRange處理它

context.DynamicTrees.RemoveRange(context.DynamicTrees.Where(x => x.Id == id || x.ParentId == id));
context.SaveChanges();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM