asp.net-mvc - 如何使用存储库模式查询交叉表?

标签 asp.net-mvc join repository-pattern

在我的 asp.net mvc 3 应用程序中,我使用存储库模式。 我有 3 个实体:公司、国家/地区、城市。他们每个人都有自己的存储库。公司实体具有FoundedCountry 和FoundedCity 外键。 现在在 View 中,我想显示公司详细信息。在此 View 中,我想查看公司详细信息以及FoundedCountry名称和FoundedCity名称。在我看来,我必须用一种 JOIN 查询来处理这个问题。但我一直不知道如何在存储库模式中实现这一点。我如何在存储库模式中处理此 JOIN?

谢谢。

最佳答案

存储库应该有一个基于任务的界面。这意味着 ORM、连接等都位于存储库内。应用程序只看到一个接口(interface),该接口(interface)返回一个它可以使用的对象。

这意味着您不会围绕表创建存储库(这几乎违背了目的)。在您的场景中,我建议您(至少)有 2 个存储库:一个将处理与更新模型相关的所有内容,另一个将仅提供读取(查询)服务。

这意味着查询存储库将仅返回您想要的数据(它基本上返回 View 模型位)。当然,实际的表和连接是存储库的实现细节。

关于asp.net-mvc - 如何使用存储库模式查询交叉表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10288695/

相关文章:

c# - 为什么以及何时应该让我的程序集对 Com Components 可见?

mysql - 两个表,其中所有行包括根据 id 分配的行

entity-framework - 通用存储库和泄漏抽象

mysql left join同表sum错误结果

c# - 这是使用模拟对存储库进行单元测试的正确方法吗?

asp.net-mvc - 何时公开 IEnumerable 而不是 ICollection?

javascript - 是否可以将东西存储在 MVC Controller 中?

javascript - 如何使用 MVC 中的部分渲染概念在 div 中显示输出

c# - MVC 应用程序示例中的一个奇怪的部分 'featured'

php - 使用 UNION JOIN 从多个用户类型中选择项目