我已经将数据库存储库层添加到执行CRUD的MVC应用程序中。有时我的控制器需要调用多个数据库存储库,我通过调用我需要的db数据库来执行此操作。这又会创建多个数据库上下文对象。每个存储库一个。应该有多个数据库上下文对象,还是应该将单个数据库上下文传递给存储库对象?MVC数据库上下文过度使用?
0
A
回答
1
在你的控制器中你应该使用一个dbContext。因为当你尝试在db中更新你的模型时,你可能会遇到错误。由于不同的dbContext。
检查HERE
1
应该只有一个,我高度推荐使用工作模式的单位:
这里有一个快速和简单的例子:
public interface IUoW : IDisposable
{
MyDbContext DbContext { get; set; }
void SaveChanges();
}
public class UoW : IUoW
{
public MyDbContext DbContext { get; set; }
public UoW()
{
DbContext = new MyDbContext();
}
public void SaveChanges()
{
DbContext.SaveChanges();
}
public void Dispose()
{
DbContext.Dispose();
}
}
您需要为一次实例UOW每个请求并将其传递到您的存储库:
public class MyRepository
{
private MyDbContext _context;
public MyRepository(IUoW uow)
{
_context = uow.MyDbContext;
}
// your crud methods
}
当然,这只是一个非常简单的例子,我看到许多人以不同的方式实现这个模式。
+0
谢谢。我已经实施这种模式是有效的! – user1476207 2013-05-07 09:18:42
相关问题
- 1. MVC成员数据库上下文?
- 2. 使用LINQ2SQL在ASP.NET MVC中的各种模型库共享数据上下文
- 3. 使用ASP.NET MVC将文件上传到数据库
- 4. 使用数据上QuerySting MVC
- 5. 使用ASP.NET MVC创建LINQ to SQL数据模型的数据上下文
- 6. 上传文件数据到数据库中使用Spring MVC和休眠
- 7. 如何在coredata上下文中使用预填充数据库
- 8. 使用PHP上传/下载POSTGRESQL数据库中的文件
- 9. 如何在模拟数据库上下文时使用DefaultIfEmpty?
- 10. 经常使用的实体框架数据库上下文
- 11. 动态数据库上下文
- 12. InvalidOprerationException尝试使用entityframework MVC插入数据到数据库MVC
- 13. MVC 4/EF中的数据库上下文和异步函数5
- 14. MVC级联下拉列表过滤连接数据库表
- 15. 在XPATH中,使用当前上下文中的数据过滤其他数据
- 16. 使用jQuery通过Joomla MVC组件更新数据库
- 17. 使用文档数据库中的值填充MVC中的下拉列表
- 18. MVC使用SMOLite创建SQL数据库
- 19. 使用Android和MVC打开数据库
- 20. 使用MVC连接到数据库
- 21. 使用Spring MVC和MySQL数据库
- 22. 使用asp.net mvc链接数据库
- 23. ASP.NET MVC通过数据库登录
- 24. 通过Web服务调用进行数据库连接的安全上下文
- 25. 使用MVC将图片上传到SQL Server数据库
- 26. asp.net mvc代码首先使用数据库上下文对象抛出空引用异常
- 27. 实体框架数据上下文与数据库不同步?
- 28. 如何切换现有数据源的数据库上下文?
- 29. 当数据源是EF上下文时,使用Asp.Net MVC 3的方法
- 30. 当使用SQLiteOpenHelper与仪器上下文时“无法打开数据库文件”
感谢您的帮助。这是一种享受!现在我必须通过我所有的代码并改变它。 – user1476207 2013-05-07 09:18:15
很高兴,它有帮助... – 2013-05-07 09:19:58