gpt4 book ai didi

.net - 如何使用 Code-First EF 4.1 从数据库中删除多个项目

转载 作者:搜寻专家 更新时间:2023-10-30 20:12:22 25 4
gpt4 key购买 nike

我们使用带有 DbContext 和 DbSet<> 的代码优先 EF 4 以及带有 DataAnnotations 的 POCO。我对此很陌生,似乎无法找到我的问题的答案:

如何在不先使用 LINQ 选择项目然后在每次迭代中循环并调用 Remove(item) 的情况下直接从数据库中删除多个项目?这对我来说似乎很愚蠢。

所有与此相关的引用都引用了似乎不存在的函数,例如 DeleteOnSubmit(item),它在我的 DbContext 中不存在。此外,它只删除一项。

有没有更好的办法?

最佳答案

DeleteOnSubmit 是来自 DataContext class = Linq-to-SQL

的函数

您不必在删除项目之前加载它。如果您知道它的 key 就足够了。这样的事情应该有效:

var item = new Item { Id = someId };
context.Items.Attach(item);
context.Items.Remove(item);
context.SaveChanges();

var item = new Item { Id = someId };
context.Items.Attach(item);
context.Entry(item).State = EntityState.Deleted;
context.SaveChanges();

如果不指定要删除的每个项目,就无法使用 EF 删除多个项目(级联删除除外)。如果你想直接删除多个项目,你必须使用像 SQL

context.Database.ExecuteSqlCommand("DELETE ...");

关于.net - 如何使用 Code-First EF 4.1 从数据库中删除多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7040364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com