gpt4 book ai didi

.net - 可以使用存储库模式 + 存储过程吗?他们应该/可以返回 IQueryable 吗?

转载 作者:行者123 更新时间:2023-12-02 02:32:03 25 4
gpt4 key购买 nike

我非常喜欢使用 Repository pattern返回 IQueryable<T>对象。然后我让我的服务层决定做什么(例如,按 XXX 过滤、按 YYY 排序、转换到 ABCD 等)。

但是我有一些硬核数据库的东西,所以我把它全部打包成一个 Stored Procedure .工作良好。我知道 EF 可以执行存储过程..但我不确定这如何适合存储库模式数据层。

有没有人有任何例子/建议?我是否让存储库方法执行存储过程,然后返回结果(例如 ICollection<Foo> as AsQueryable .. 所以服务层然后只查询该结果?

最佳答案

我建议继续这样做。在 EF 模型中设置存储过程,返回它需要的任何实体,然后在您的存储库中创建一个 get 来解决存储过程正在使用的内容。数据返回方式的差异发生在您的 DAL 内部(在本例中为 EF 模型),您的存储库仍在访问上下文以查找和返回数据。

我现在正在做类似的事情,这是我能想到的最佳解决方案。它使我能够继续在 EF 模型中进行数据访问,并将我的存储库与模型收集数据的方式分开。存储库仍然不知道模型如何获取数据,应用程序的其余部分不会看到存储库功能有任何不同。

关于.net - 可以使用存储库模式 + 存储过程吗?他们应该/可以返回 IQueryable 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3385648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com