【问题标题】:Generic repository OR stored procedures for database interaction?用于数据库交互的通用存储库或存储过程?
【发布时间】:2015-09-20 14:21:14
【问题描述】:

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

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

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

3.它是否兼容基于标准的复杂搜索?

【问题讨论】:

  • 您的问题 2 有点开放式 - 征求意见。请提出更具体的问题。

标签: asp.net-mvc generics stored-procedures repository-pattern n-tier-architecture


【解决方案1】:

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

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

  2. 我个人不会使用这种方法,因为我宁愿将业务逻辑放在业务层中。但是在某些情况下,它肯定会很有用,例如当性能非常重要或您希望完全控制查询或其他一些复杂操作时。

  3. 请记住,您确实可以使用 LINQ 来构建复杂的查询(连接、排序、过滤、聚合、选择......)。有些部分甚至可以自动化,例如使用 PredicateBuilder 的 WHERE 子句,使您能够根据用户输入、搜索条件等动态创建和/或查询......

一般来说,是的,这是可能的,但这完全取决于您工作的环境。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多