asp.net-mvc-3 - 带有存储过程的 DDD 规范模式

标签 asp.net-mvc-3 entity-framework stored-procedures domain-driven-design specification-pattern

我将编写一个存储过程,它将根据查询拉回 X 条记录。该 SP 在执行搜索时可能需要锁定记录。我也在使用 EF,我知道它不能使用悲观锁定。

我没有考虑在查询本身中使用过滤逻辑,而是考虑使用规范模式,以便业务逻辑将决定查询。如果我使用此模式并将规范传递到我的存储库,而存储库又调用 SP,SP 将如何知道如何处理规范?

规范可以包含跨越多个表并在不同列上排序的条件。

在这种情况下使用规范模式是否有意义,或者我应该只创建其中定义了查询和过滤的 SP?

最佳答案

规范模式用于在应用程序中定义和执行查询 - Linq 是一种规范。存储过程用于直接在数据库服务器中定义和执行查询。这两种方法大多是相反的。

可以在存储过程中创建动态 SQL,但这会将您的逻辑移动到与 DDD 无关的数据库。此外,在需要加入附加表的情况下,允许这样的解决方案用于任意过滤器将非常复杂。

关于asp.net-mvc-3 - 带有存储过程的 DDD 规范模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10395537/

相关文章:

entity-framework - Entity Framework 按约定忽略属性

c# - Entity Framework 不适用于存储过程!

c# - 简单注入(inject)器 : Different DbContext for selected controllers

sql - 使用 PetaPoco 执行参数化存储过程

SQL 分组和某个日期范围内未清项目的运行总计

asp.net-mvc-3 - Mvc3 IEnumerable<QuestionModel> 有一个 List<QuestionOptionModel> 属性。当我发帖时,我得到空列表

c# - 如何遍历列表并从中创建一个 json 数组?

c# - MVC3 下拉列表为

facebook - MVC3 Web 项目错误 : "An attempt was made to access a socket in a way forbidden by its access permissions 10.10.0.1:3128"

MySql存储过程调用错误