如何在EF5中取消DbSet.Add

时间:2012-10-23 02:57:28

标签: entity-framework

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

2 个答案:

答案 0 :(得分:2)

没有。
只要您不致电SaveChanges(),您的所有更改都只会影响该DbContext个实例。

答案 1 :(得分:2)

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

微软的官方立场是,如果你想退出更改,你就会抛弃DbContext。没有好方法可以删除对象。

相关问题