0

全部,假设您有一些如下代码。我想知道如果它没有运行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根据某些业务条件取消这些呢?我怎样才能做到这一点。谢谢。

4

2 回答 2

2

不会。
只要您不调用SaveChanges(),您的所有更改都只会影响该DbContext实例。

于 2012-10-23T03:01:38.347 回答
2

当代码退出 using 块时,所有数据都将被丢弃而不保存。

微软的官方立场是,如果你想撤销更改,你就扔掉 DbContext。没有很好的方法来删除对象。

于 2012-10-23T03:25:18.763 回答