2017-09-19 39 views
2

我有下面的代码,我想删除TABLE'列'id不是主键的所有行。LINQ DeleteOnSubmit没有主键

@{ 
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数据库主键的情况下做到这一点?

在此先感谢

回答

1

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

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