[英]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.