使用 FK 约束清空带有 Entity Framework 的表
Emptying tables with Entity Framework with FK Constraints
我环顾四周,找到了使用 TRUNCATE 清除 table 的方法,但这只适用于未被引用为外键的 table。
我还找到了一种方法,它描述了找到所有数据的范围,然后删除该范围。然而,这是一种效率较低的方法,如果有更好的选择,我想避免使用它。
清空这 2 个 table 的最有效方法是什么?
public class Product
{
public int ProductID { get; set; }
public String ProductNaam { get; set; }
[ForeignKey("Afdeling")]
public int? AfdelingID { get; set; }
public virtual Afdeling Afdeling { get; set; }
}
public class Afdeling
{
public int AfdelingId { get; set; }
public string Naam { get; set; }
}
我在 .net 4.5 WPF 项目中使用 Visual Studio 2013 Ultimate,其中 Entity Framework 6.1.2 和 LocalDB
副本:Entity Framework. Delete all rows in table
查看社区维基答案。
public static void Clear<T>(this DbSet<T> dbSet) where T : class
{
dbSet.RemoveRange(dbSet);
}
然后
DbContext.Afedlings.Clear();
DbContext.Products.Clear();
await VotingTestContext.SaveChangesAsync();
当然假设您可以跟踪关系。干杯。
我环顾四周,找到了使用 TRUNCATE 清除 table 的方法,但这只适用于未被引用为外键的 table。
我还找到了一种方法,它描述了找到所有数据的范围,然后删除该范围。然而,这是一种效率较低的方法,如果有更好的选择,我想避免使用它。
清空这 2 个 table 的最有效方法是什么?
public class Product
{
public int ProductID { get; set; }
public String ProductNaam { get; set; }
[ForeignKey("Afdeling")]
public int? AfdelingID { get; set; }
public virtual Afdeling Afdeling { get; set; }
}
public class Afdeling
{
public int AfdelingId { get; set; }
public string Naam { get; set; }
}
我在 .net 4.5 WPF 项目中使用 Visual Studio 2013 Ultimate,其中 Entity Framework 6.1.2 和 LocalDB
副本:Entity Framework. Delete all rows in table
查看社区维基答案。
public static void Clear<T>(this DbSet<T> dbSet) where T : class
{
dbSet.RemoveRange(dbSet);
}
然后
DbContext.Afedlings.Clear();
DbContext.Products.Clear();
await VotingTestContext.SaveChangesAsync();
当然假设您可以跟踪关系。干杯。