随着我深入研究DbContext,DbSet和相关接口,我想知道为什么你需要围绕这些实现实现一个单独的"通用"存储库?
它看起来像DbContext和IDbSet做你需要的一切,并在DbContext中包含"工作单元".
我在这里遗漏了什么,或者似乎人们喜欢无缘无故地添加另一层依赖.
我在Repository Patterns中看到的所有示例都没有包含任何类型的错误处理.为什么是这样?比方说我有这个:
public virtual TItem Insert<TItem>(TItem item) where TItem:class,new()
{
dbContext.Set<TItem>().Add(item);
try
{
dbContext.SaveChanges();
}
catch (DbUpdateException)
{
return null;
}
return item;
}
Run Code Online (Sandbox Code Playgroud)
我们违反约束的实例.我抓住了DbUpdateException ...如果不在存储库本身,这个错误处理会在哪里生效?
我现在正处于构建MVC应用程序的有趣部分.过去3周我一直在研究建筑,ONION,以及了解IOC/DI等.
所以我的问题是:实现ViewModels的最佳方法是什么?到目前为止,我已经看到了一些可怕的例子.