Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVC项目中创建数据访问层的位置_C#_Asp.net Mvc_Directory Structure - Fatal编程技术网

C# 在MVC项目中创建数据访问层的位置

C# 在MVC项目中创建数据访问层的位置,c#,asp.net-mvc,directory-structure,C#,Asp.net Mvc,Directory Structure,我创建了一个空的MVC项目,因为我需要访问数据库,我没有使用任何实体框架,只是直接使用代码。在这里,我附上了我的项目架构的快照,您可以看到数据访问层文件夹,在同一个项目中使用数据访问层是一种好方法,还是我们需要为数据访问层创建一个单独的项目 项目架构快照: 这取决于您选择的体系结构。基本上,在MVC项目中,模型与数据通信 如果您使用的是ADO,我建议将模型移动到单独的类库中也将DataAccess移动到我们在3层模型中使用的单独类库中 因此,您可以从与mvc项目分离的业务逻辑调用数据访问 像这样

我创建了一个空的MVC项目,因为我需要访问数据库,我没有使用任何实体框架,只是直接使用代码。在这里,我附上了我的项目架构的快照,您可以看到数据访问层文件夹,在同一个项目中使用数据访问层是一种好方法,还是我们需要为数据访问层创建一个单独的项目

项目架构快照:


这取决于您选择的体系结构。基本上,在MVC项目中,模型与数据通信

如果您使用的是
ADO
,我建议将
模型移动到单独的类库中
也将
DataAccess
移动到我们在
3层
模型中使用的单独类库中

因此,您可以从与mvc项目分离的业务逻辑调用
数据访问

像这样的东西

在模型中,您可以使用
BLL


或者,您可以添加
App\u Data
文件夹,编写数据访问帮助器类,并在模型本身中编写业务逻辑。我建议使用第一种方法将其分开。

保持数据访问层不变,但通过控制器调用DataAccessLayer方法
因为视图直接调用相应的控制器。从该控制器,您可以访问数据访问层,但在模型文件夹中创建类(模型)

我也面临类似问题。请参阅以下帮助。


我使用的是存储库模式和工作单元。但这里有通过层进行冗余编码的方法。上面的链接包含一些旧的链接,请参阅,这对您有帮助。别忘了在这件事上写个逗号,谢谢

最好将DAL放在一个单独的项目中,而不是您的表示层中。在将来,如果您有一个不同的数据库,您不必对表示层进行更改。只要在DAL上工作,你就可以走了。这就是我在大多数项目中遵循的方法。我不是一个架构师,但肯定见过很多人使用相同的分层体系结构。照此