gpt4 book ai didi

entity-framework - 为什么 EntityFramework.Extended 库在更新和删除时不需要调用 SaveChanges()?

转载 作者:行者123 更新时间:2023-12-04 07:24:46 25 4
gpt4 key购买 nike

我正在查看 EntityFramework.Extended .它可以在数据库实体上运行 Update() 和 Delete()。喜欢:

//delete all users where FirstName matches
context.Users.Delete(u => u.FirstName == "firstname");

但有趣的是,它不需要调用 context.SaveChanges(),它直接进入数据库并删除记录。

这是一个糟糕的设计吗?我认为对实体的每次修改都需要调用 SaveChanges() 才能生效并保持数据库和内存对象之间的正确关系和映射。

最佳答案

您必须了解 SaveChanges 的作用。 SaveChanges 提交存储在当前本地缓存中的对象模型更改。

您所引用的库生成 SQL 命令语句,并且不修改对象上下文。因此,由于对象上下文未更改,因此没有要保存的更改(换句话说,SaveChanges 指的是数据模型,而不是数据库)。

为了说明这一点......想象一下您的 child 乘坐公共(public)汽车上学与您让他们下车之间的区别。

当他们乘公共(public)汽车去学校时,校车会开到各个站点,然后当它结束时,公共(public)汽车会立即让所有 child 下车。这有点像调用 SaveChanges。

但是当你送 child 去学校时,这是一个单一的任务,在你做的时候用一个单一的 Action 完成。

关于entity-framework - 为什么 EntityFramework.Extended 库在更新和删除时不需要调用 SaveChanges()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13786222/

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