linq2Entities 下的多个操作

本文关键字:操作 linq2Entities | 更新日期: 2023-09-27 17:56:04

我已经在小型程序上使用Linq2Entities有一段时间了。所以通常我的查询是基本的(返回特定列中具有特定值的元素,添加/更新元素,删除元素,...)。

现在我正在转向一个更大规模的程序,鉴于我的经验,使用 Linq2Entities 并且一切都很好,直到我不得不删除大量元素。

在 Linq2Entities 中,我只能找到一个接受实体的删除方法 - 因此要删除 1000 个 elemnts,我首先需要检索它们,然后逐个应用删除,然后调用 savechanges。

要么我错过了一些东西,要么我觉得 a) 这在性能方面真的很糟糕,b) 我最好把它作为数据库中的一个过程。

我的假设是对的吗?是否应该仅作为程序进行大规模移除/添加?或者有没有办法用我缺少的 Linq2Entities 有效地做到这一点?

linq2Entities 下的多个操作

如果您有主键值,则可以使用上下文的其他功能,方法是手动创建对象,设置其键,并将它们附加到上下文并将其状态设置为删除。

 var ids = new List<Guid>();
            foreach (var id in ids)
            {
                Employee employee = new Employee();
                employee.Id = id;
                entityEntry = context.Entry(employee);
                entityEntry.State = EntityState.Deleted;
            }
            context.SaveChanges();