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

Mek*_*oll 2 entity-framework asp.net-mvc-3 dbcontext

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

    public virtual void Insert(TEntity entity) {
        dbSet.Add(entity);
    }
Run Code Online (Sandbox Code Playgroud)

我的服务层使用该Insert方法添加新记录。现在我希望能够返回一个布尔值,以确保它正确插入。类似于以下内容:

    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;
    }
Run Code Online (Sandbox Code Playgroud)

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

Eri*_*sch 5

你不需要这样做。添加要么成功,要么抛出异常。它不能在不抛出的情况下添加和返回。

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