c# - 不带主键的 LINQ DeleteOnSubmit

标签 c# sql-server linq

我有以下代码,我想从表中删除“id”列不是主键的所有行。

@{
using (var db = new DataClassesDataContext())
{
    var query = db.Table.Where(r => r.id == 2).ToList();
    if (query != null)
    {
    foreach (var q in query)
    {
    db.Table.DeleteOnSubmit(q);
    }
    }
    db.SubmitChanges();
}}

这会引发 System.InvalidOperationException,因为该表没有主键列。

如果不在 SQL Server 数据库中添加主键,如何才能做到这一点?

提前致谢

最佳答案

打开 LINQ 设计器。打开要从中删除记录的表的属性窗口。单击要删除的实体中的任何列,您将看到标有“主键”的属性。将要用作主键的列的值更改为 true。

P/S:这不会在您的真实表上设置主键。

关于c# - 不带主键的 LINQ DeleteOnSubmit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46294757/

相关文章:

c# - 在 linq 中使用数据透视表

c# - 如何重写此 Linq 查询以避免使用 FirstOrDefault?

c# - EF6 对外键的唯一约束

c# - 如何使用带有 C# 的 ASP.NET 在新的浏览器选项卡中打开任何文件?

c# - 我可以执行多条SQL语句吗?

sql-server - 死锁:键锁资源列表中的属性模式与所有者列表模式不同

带有 ProgressBar 的 C# ListView

c# - 找不到类型或命名空间(是否缺少 using 指令或程序集引用?)

sql-server - 在 T-SQL 中执行 "Foreach Update"的最佳方法是什么?

LINQ - 使用查询表达式计算数据时差