是否有可能得到的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