这是一个常见的存储库删除功能。 C#如何知道要删除的项目?用整数id,primaryid键删除是不是更好?通过全班,是否不需要更长的处理时间?
谢谢,
public void Delete(T entity)
{
_dbContext.Set<T>().Remove(entity);
_dbContext.SaveChanges();
}
public void Delete(Foo entity)
{
context.Foos.Remove(entity);
}
答案 0 :(得分:0)
C#如何知道要删除的项目?
实体框架通过唯一标识符删除它。
通过整数ID,主键删除是不是更好?
是的,实际上,实体框架也会通过其唯一ID删除记录。但是我们必须提供一个完整的实体,然后实体框架匹配实体ID。
通过全班,是否不会花费更长的处理时间?
不是太多,几毫秒,但问题是两个数据库查询一个操作,一个检索记录,第二个删除记录。
<强>解决方案:强>
在Entity framework 6.0中,您可以删除记录而不检索它。 Here is a complete solution.