我一直在寻找有关如何使用LINQ方法语法从表中删除所有记录的答案,但是所有答案都基于属性。
我想从数据库中删除每条记录。
该表如下所示:
public class Inventory
{
public int InventoryId { get; set; }
public string InventoryName { get; set; }
}
我不想删除基于特定名称或ID的记录。
我要删除所有记录。
LINQ方法语法不是必须的,但我更喜欢它,因为它更易于阅读。
答案 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();
}