-1

由于通用存储库可用于插入,更新,删除等,但它仅限于简单的Crud操作,如果我想使用我的通用存储库进行一些更复杂的插入和搜索,如连接表和通过存储过程检索。并使用存储过程将数据插入到多个表中,那么如何从通用存储库处理它?数据库交互的通用存储库或存储过程?

1.我可以从我的通用存储库中调用存储过程吗?

2.使用通用存储库+存储过程是个好主意吗?

3.它是否兼容标准基复合搜索?

+2

你的问题2有些开放式 - 征求意见。请询问更具体的问题。 – xidgel

回答

0

你的问题应该是为了给你一个正确的答案更具体的,但这里是我的两分钱:

  1. 是的,它可以从你的资料库调用存储过程。如果您使用的是Entity Framework,则可以将存储过程映射到CLR对象,您可以从存储库中调用该对象。根据您使用的框架(或缺少它),您需要找出正确的语法来执行此操作。

  2. 就我个人而言,我不会使用这种方法,因为我宁愿将业务逻辑放入业务层。但是在某些情况下,它肯定会很有用,例如,当性能非常重要或者您希望完全控制您的查询或某些其他复杂操作时。请记住,您可以使用LINQ来构建复杂的查询(加入,排序,过滤,聚合,选择,, ..)。某些部分甚至可以自动进行,如使用PredicateBuilder WHERE子句,使您基于用户输入,搜索标准动态地创建和/或查询,..

一般来说,是有可能的,但它的所有取决于你工作的环境。