表<T> .DeleteOnSubmit生成的SQL匹配所有列

Ric*_*lay 3 .net linq-to-sql

我在使用LINQ to SQL的棕色地块项目中遇到了一个问题,即调用Table<T>.DeleteOnSubmitSQL查询结果,该查询中包含WHERE表中每列的子句.

这是默认行为吗?如何更改它以使其仅匹配主键?

编辑

要确认,生成的类有一个主键:

[Column(Name="id", Storage="_Id", AutoSync=AutoSync.OnInsert, 
        DbType="BigInt NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
public long Id
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

mar*_*c_s 5

是 - Linq-to-SQL数据模型具有UpdateCheck为任何表中的每个列调用的属性.该属性指示在更新行之前是否将使用该列来检查行是否未更改.

在删除行之前,该属性也用于检查行是否未更改.因此,如果您只是UpdateCheck = Never在模型中设置所有列(主键除外),那么您应该得到您正在寻找的内容.

在此输入图像描述