删除的LINQ to SQL记录不先加载它(Delete a LINQ to SQL record

2019-07-03 10:43发布

是否有可能得到的LINQ to SQL删除使用PK的记录,而无需首先加载记录? 类似NHibernate的代理对象的功能?

Answer 1:

你应该能够做到这一点是这样的:

var person = new Person();
person.ID = someID;

using (var context = new DataContext(connString))
{
    context.Persons.Attach(person, false); //attach is as unmodified
    context.Persons.DeleteOnSubmit(person); //remove it
    context.SubmitChanges(); //submit changes to db
}


Answer 2:

添加到约瑟夫的答案:

您可能会遇到麻烦删除以这种方式,如果你的实体,具有用于UpdateCheck的设置为始终,除非你设置等领域的适当的任何领域。

此外,如果要删除多个相关的实体,其中FK约束都参与其中,你可能会遇到麻烦,如果实体没有按照正确的顺序(导致违反约束)删除。 为了避免这种情况,设置参与这种FKS适当的所有领域。



文章来源: Delete a LINQ to SQL record without loading it first