是否有内置方法可以使用主键通过 Linq to Entities 进行删除。
目前的解决方法是创建一个名为DeleteTable的存储过程(表是表名)
然后在 C# LINQ To Entities 中我只需执行 context.DeleteTable(ID)
这是最好的方法吗?还有什么其他选择?
如果您不想访问数据库来检索对象的所有字段,则可以创建该类的新实例,将其附加到新上下文,将其删除,然后保存更改。这让 EF 生成适当的删除命令。
using (var context = new MyContext())
{
var myObject = new MyObject { ID = 3 };
context.MyObjectSet.Attach(myObject);
context.MyObjectSet.DeleteObject(myObject);
context.SaveChanges();
}
注意:如果您尝试删除不存在的对象,这将引发异常。仅当您确定该对象存在时,这才适用。
注意 2:这假设您已经设置了实体,以便生成的删除命令除了 ID 之外不引用其他字段(意味着没有时间戳属性,或查询中包含的任何类似属性)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)