Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 如何从表中删除所有记录?_Linq - Fatal编程技术网

Linq 如何从表中删除所有记录?

Linq 如何从表中删除所有记录?,linq,Linq,我一直在寻找一个关于如何使用LINQ方法语法从表中删除所有记录的答案,但所有答案都是基于一个属性来完成的 我想从数据库中删除每一条记录 这个表看起来是这样的: public class Inventory { public int InventoryId { get; set; } public string InventoryName { get; set; } } 我不希望删除基于特定名称或id的记录 我想删除所有记录 LINQ方法语法不是必

我一直在寻找一个关于如何使用LINQ方法语法从表中删除所有记录的答案,但所有答案都是基于一个属性来完成的

我想从数据库中删除每一条记录

这个表看起来是这样的:

public class Inventory
    {
        public int InventoryId { get; set; }
        public string InventoryName { get; set; }
    }
我不希望删除基于特定名称或id的记录

我想删除所有记录


LINQ方法语法不是必须的,但我更喜欢它,因为它更易于阅读。

要从DB表中删除所有数据,我建议使用SQL:

Trancate Table <tableName>
trantate表

Linq并不意味着要更改源代码。没有LINQ方法可以从输入中删除或更新任何元素

更改输入的唯一方法是选择要在某个集合中删除的数据(标识符),然后在foreach中逐个删除这些项。可能是您与源集合的接口已经具有DeleteRange,在这种情况下,您不必执行foreach

唉,您没有提到您的表是什么:它是一个
系统.Data.DataTable
?或者可能是一个实体框架
DbSet
?表示表的任何其他常用类

如果您的表类是一个
System.Data.DataTable
,或者实现了
ICollection
,那么它应该有一个清除
的方法

如果您的tabls是实体框架
DbSet
,则取决于您的提供商(您使用的数据库管理系统)是否可以使用“清除”。通常,您需要执行以下操作:

using (var dbContext = new MyDbContext(...))
{
    List<...> itemsToDelete = dbContext.MyTable.Where(...).ToList();
    dbContext.MyTable.RemoveRange(itemsToDelete);
    dbContext.SaveChanges();
}
    
使用(var-dbContext=new-MyDbContext(…)
{
List itemsToDelete=dbContext.MyTable.Where(…).ToList();
dbContext.MyTable.RemoveRange(itemsToDelete);
dbContext.SaveChanges();
}

这是一个数据库集。我对数据库不太熟悉,所以我没有透露。此外,我还设法找到了另一种好方法来删除表中的所有记录,或者更确切地说是整个表中的记录。你觉得怎么样<代码>使用(DungeonContext=new DungeonContext()){context.inventory.RemoveRange(context.inventory);context.SaveChanges();}
这不是我最后写的吗?我只做了两步,以清楚地显示发生了什么