0

我试图了解数据库访问模型在 asp.net mvc 中的工作原理,一些示例在控制器中工作,但其他示例在模型中。

我想知道如何使用 ado.net,最佳实践是在模型层中使用一个类并尝试在那里访问我的数据库?

所有示例都使用 EF 和 LINQ,我想知道使用 ado.net 的最佳方法。

数据库访问是在模型还是控制器中?

4

2 回答 2

3

这是一个需要考虑的建筑设计:

  1. 视图和控制器位于MVC 网站中。
  2. 模型在一个单独的项目中。
  3. 数据访问代码位于名为 DataAccess 或 Repository 的第三个项目中。

该网站引用了 Models 和 DataAccess 项目。DataAccess 项目还引用了 Models 项目。

这样,数据访问代码是分开的。它更容易找到和维护。它可以用于另一种解决方案。您甚至可以将其换成完全不同的数据访问层——例如,从 Linq 切换到 SQL 到 Entity Framework 或经典 ADO.Net。

通过将模型保存在单独的项目中,网站和数据访问层都可以引用它们。此外,Models 项目可以用于其他解决方案,就像松散耦合的数据访问层一样。

以这种方式分离层也可以更容易地添加测试。如果数据访问层/存储库利用接口和依赖注入,这将变得更容易。

于 2012-05-26T16:22:59.810 回答
1

数据库访问应在控制器中完成。我不确定您具体看到了哪些 EF 示例,但在许多 EF 实体中,模型本身就是模型(这通常是开始使用网站的一种快速简便的方法,但不适用于大型网站)。基本上,控制器负责获取/生成模型,然后将其传递给视图。

于 2012-05-26T16:23:46.057 回答