【发布时间】:2015-08-14 12:07:49
【问题描述】:
假设我正在开发一些 ASP.NET MVC 应用程序,它通过存储过程处理现有数据库中的数据,没有也永远不会 linq 到实体或其他任何东西。该数据库包含许多模式,我所有的 Web 应用程序也需要不同的模式。
这是我的观点:
- 我的解决方案中有一个 x.Model 项目,其中包含我的 ADO.NET 实体模型,用于为现有数据库中的所有存储过程创建返回类型。
- 我的解决方案中有 x.Repository.y 项目,其中 y 是数据库中的模式名称。这些项目包含具有通过 ADO.NET 实体模型的上下文从适当架构调用存储过程的功能的类。所以我必须在这些存储库项目中引用 x.Model。
- 我有 ASP.NET MVC 项目,这些项目使用来自 x.Repository.y 项目的必要注入存储库。我在视图中使用其中一些返回类型的存储过程作为模型,因此我也需要对 x.Model 项目的引用。但在这种情况下,此参考为客户端 Web 应用程序提供了所有上下文。我不希望在我的 Web 应用程序中可以访问我的全部或部分数据库实体。我只是想让他们知道必要的存储库类。
有可能吗?我该怎么做?
如果我删除 x.Model 项目并在我的 x.Repository.y 项目中创建仅包含适当架构存储过程的 ADO.NET 实体模型,则引用 Web 应用程序再次知道此架构的整个数据库实体。
提前致谢,
【问题讨论】:
标签: asp.net-mvc entity-framework stored-procedures architecture repository-pattern