在一个应用程序中它有数据访问层。它有DataEntityModel.edmx(entityframework模型)和存储库类。
下面的代码是我的存储库类。
#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(实体) ??
答案 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引入存储库模式。