全部,假设你有一些如下代码。我想知道如果它没有运行db.savechanges()
,是否有必要将一些代码写入一般取消db.DeployPackages.Add(package)
?
HotDeployDbContext db = null;
using (db = new HotDeployDbContext())
{
DeployPackage package = new DeployPackage();
db.DeployPackages.Add(package);
//determine if save package to db based on some condition.
if (.....)
{
db.SaveChanges();
}
else
{
//how to cancel the db.DeployPackages.Add(package);
}
}
被修改
有时我们在一个Dbcontext
中做很多事情,比如将数据添加到多个表中。删除一些数据或更新数据。但是如果我们确实需要在运行SaveChanges
之前根据某些业务条件取消这些操作呢?我怎么能做到这一点。谢谢。
答案 0 :(得分:2)
没有。
只要您不致电SaveChanges()
,您的所有更改都只会影响该DbContext
个实例。
答案 1 :(得分:2)
当代码退出使用块时,所有数据都将被丢弃而不保存。
微软的官方立场是,如果你想退出更改,你就会抛弃DbContext。没有好方法可以删除对象。