是否可以让LINQ to SQL使用PK删除记录,而不首先加载记录?类似于NHibernate的代理对象功能?
答案 0 :(得分:16)
你应该能够这样做:
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
}
答案 1 :(得分:3)
加入约瑟夫的回答:
如果您的实体具有UpdateCheck设置为Always的任何字段,则可能无法以此方式删除,除非您根据需要设置此类字段。
此外,如果要删除涉及FK约束的多个相关实体,如果未按正确顺序删除实体(导致约束违规),则可能会遇到问题。为避免这种情况,请根据需要设置此类FK中涉及的所有字段。