EF4.3知道上下文是否已成功插入实体

时间:2012-04-21 23:35:15

标签: asp.net-mvc-3 entity-framework dbcontext

我在通用基类中有以下方法:

    public virtual void Insert(TEntity entity) {
        dbSet.Add(entity);
    }

我的服务层使用Insert方法添加新记录。现在我想能够返回一个bool,以确保它正确插入。如下所示:

    public virtual int Count {
        get {
            return dbSet.Count();
        }
    }

    public virtual bool Insert(TEntity entity) {
        int count = this.Count;
        dbSet.Add(entity);

        return this.Count == count + 1;
    }

有更优雅的方式吗?我完全错误地接近它吗?我可以为Delete方法做类似的事情,但是如何检查Update是否已成功执行?

1 个答案:

答案 0 :(得分:4)

你不需要这样做。添加将成功或抛出异常。它不能无法添加和返回而不会抛出。

此外,查询不会立即执行。它一直排队,直到调用Commit(context.SaveChanges())。所以你不知道实际的SQL是否会失败,直到以后。