如何删除表中的所有记录?

时间:2020-06-24 16:35:52

标签: linq

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

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

该表如下所示:

public class Inventory
    {
        public int InventoryId { get; set; }
        public string InventoryName { get; set; }
    }

我不想删除基于特定名称或ID的记录。

我要删除所有记录。

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

2 个答案:

答案 0 :(得分:0)

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

Trancate Table <tableName>

答案 1 :(得分:0)

Linq并非要更改源。没有LINQ方法可从输入中删除或更新任何元素。

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

A,您没有提到桌子是什么:是System.Data.DataTable吗?还是实体框架DbSet<...>?还有其他代表表格的常用类吗?

如果表类是System.Data.DataTable或实现ICollection,则它应具有方法Clear

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

using (var dbContext = new MyDbContext(...))
{
    List<...> itemsToDelete = dbContext.MyTable.Where(...).ToList();
    dbContext.MyTable.RemoveRange(itemsToDelete);
    dbContext.SaveChanges();
}
    
相关问题