我将编写一个存储过程,它将根据查询拉回 X 条记录。该 SP 在执行搜索时可能需要锁定记录。我也在使用 EF,我知道它不能使用悲观锁定。
我没有考虑在查询本身中使用过滤逻辑,而是考虑使用规范模式,以便业务逻辑将决定查询。如果我使用此模式并将规范传递到我的存储库,而存储库又调用 SP,SP 将如何知道如何处理规范?
规范可以包含跨越多个表并在不同列上排序的条件。
在这种情况下使用规范模式是否有意义,或者我应该只创建其中定义了查询和过滤的 SP?
最佳答案
规范模式用于在应用程序中定义和执行查询 - Linq 是一种规范。存储过程用于直接在数据库服务器中定义和执行查询。这两种方法大多是相反的。
可以在存储过程中创建动态 SQL,但这会将您的逻辑移动到与 DDD 无关的数据库。此外,在需要加入附加表的情况下,允许这样的解决方案用于任意过滤器将非常复杂。
关于asp.net-mvc-3 - 带有存储过程的 DDD 规范模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10395537/