我在使用 VB.NET 删除表中的所有记录时遇到问题。我正在使用此代码删除联系人表中的所有记录
For Each contact In database.Contacts
database.Contacts.DeleteOnSubmit(contact)
Next
但我得到这个错误
无法对“表(联系人)”执行创建、更新或删除操作,因为它没有主键。
有人有什么建议吗?
我在使用 VB.NET 删除表中的所有记录时遇到问题。我正在使用此代码删除联系人表中的所有记录
For Each contact In database.Contacts
database.Contacts.DeleteOnSubmit(contact)
Next
但我得到这个错误
无法对“表(联系人)”执行创建、更新或删除操作,因为它没有主键。
有人有什么建议吗?
您的桌子上可能应该有一个主键。这将使您的桌子更容易工作。如果您没有主键,请尝试找到合适的候选键设置为主键。如果您没有合适的列,那么您可能希望考虑添加一个自动递增代理键(在 SQL Server 中称为标识)。如果您已经有一个主键,请确保您的 LINQ to SQL 类已更新。
但是,如果您只想删除所有值,您可能会发现此方法太慢。另一种方法是使用以下命令直接执行 SQL DataContext.ExecuteCommand
:
database.ExecuteCommand("DELETE Contacts");
这不需要表具有主键。请注意,这将不可挽回地删除表中的所有行,所以要小心。更快的是TRUNCATE命令,但请注意,这需要更大的权限:
database.ExecuteCommand("TRUNCATE TABLE Contacts");
同样,请小心使用此命令。它将从您的表中删除所有行。