一直在寻找MVC店面,并看到IQueryable是从存储库类返回的。想知道如果你不使用LINQ是否有意义返回该对象?在LINQ中,由于延迟执行是有意义的,因此在服务层中添加过滤是有意义的,但是如果不使用LINQ,则在许多情况下都需要在数据库中进行过滤。在这种情况下,我只需将添加过滤器的方法添加到存储库中?如果我这样做,服务层真的有用吗?存储库模式 - MVC店面
回答
参数可以进行两种方式,看到这个最近的一篇博客:Should my repository expose IQueryable?
是罗布科纳投入MVC店面IQueryable的东西是创新的,但绝不是常态,当谈到创建存储库。通常,存储库负责将您的域映射到数据库和从数据库映射。返回IQueryable并不真正执行任何映射,并依赖于服务层来完成此操作。这有其优点和缺点,但足以说它不是唯一的方法。
但是,您会注意到,由于所有重复的代码,您的服务最终变得有点臭。例如,如果您只想获取数据库中所有用户的列表,则必须在存储库和服务层中定义该函数。然而,在服务层发光的情况下,一次操作需要多个数据库事务/从数据库中进行事务。
存储库不应该执行映射。存储库应该在域实体和数据映射器之间进行调解。关于存储库模式的很好的描述可以在“蓝色圣经”中找到http://books.google.com/books?id=7dlaMs0SECsC&dq=domain+driven+design – Paco 2009-01-13 22:34:26
我将IQueryable暴露给服务层的问题是,如果您曾想要将Web服务器后面的存储库层包装在不破坏服务层代码的情况下,您不能使用ADO.NET Data Services,存储库代码基本上会变得多余。
虽然我认为它对于小应用来说可能非常有效,但当你开始考虑缩放和分配时,它确实比糟糕更糟糕。
不应该将服务层封装在Web服务之后?将ORM层部署到单独的层时有什么意义? – 2011-03-23 22:56:16
- 1. 在MVC中设置存储库模式
- 2. MVC存储库模式和UOW
- 3. 好的存储库模式为asp.net mvc
- 4. MVC存储库模式设计决策
- 5. MVC,存储库模式和DataLoadOptions
- 6. 存储库模式和MVC帮助
- 7. EF和存储库模式
- 8. 存储库模式
- 9. 存储库模式问题
- 10. 存储库模式 - 缓存
- 11. 无法从存储库转换为IRepository UOW存储库模式
- 12. 存储库模式和存储过程
- 13. LLBLGen和存储库模式
- 14. 存储库模式与ORM
- 15. 首先使用MVC存储库模式的EF模型
- 16. MVC +存储库模式 - 仍然依赖于数据模型?
- 17. MVC存储库模式查询缓存问题
- 18. Linq2Sql存储库模式
- 19. 存储库模式问题
- 20. 存储库模式问题
- 21. NHibernate存储库模式
- 22. 存储库模式书籍
- 23. 流利的NHibernate和存储库模式
- 24. 服务层/存储库模式
- 25. Ruby on Rails与存储库模式?
- 26. 存储库模式和DAL没有存储库模式的DAL中的区别?
- 27. 使用PetaPoco实现存储库模式
- 28. 存储库模式和数据访问
- 29. 存储库模式继续 - 类方法或存储库方法?
- 30. 存储库模式中的“模块”
我开始在MONO上使用MySQL的项目...所以不使用LINQ ...可能只是直接使用ADO ...改变什么? – CSharpAtl 2009-01-13 21:09:20