在实体框架中添加对象

时间:2016-10-12 09:51:44

标签: c# entity-framework

在一个应用程序中它有数据访问层。它有DataEntityModel.edmx(entityframework模型)和存储库类。

enter image description here

下面的代码是我的存储库类。

#include <stdlib.h>
#include <vector>
#include <map>

int main(){
    std::vector<int> a={0,1,3,2};
    std::vector<int> b={2,0,3,1};
    std::map<int, int> m;

    for ( int i = 0; i < b.size(); ++i )
        m[b[i]] = i;

    for ( int i = 0; i < a.size(); ++i )
    {
        for ( ; ; )
        {
            const int t = m[a[i]];
            if ( i == t )
                break;

            printf("%d<->%d\n", i, t);
            std::swap(a[i], a[t]);
        }
    }
    return 0;
}

}

  

问题是我使用了 DbSet.Add(entity)方法来插入。但实体框架将生成它自己的Add方法 Context.Products.Add(entity)

     

那么,这两种方法有什么区别。为什么大多数人   时间使用DbSet.Add(实体) ??

1 个答案:

答案 0 :(得分:3)

存储库取代了DbContext的使用。

所以要添加一个实体,而不是

var dbContext = new WebApiDataModel();
dbContext.Products.Add(entity)

您使用存储库:

var dbContext = new WebApiDataModel();
var productRepository = new ProductRepository(dbContext);
productRepository.Insert(entity);

最后,两个调用DbSet<Product>.Add(),但有理由说明您可能想要使用Entity Framework引入存储库模式。