ASP.NET MVC数据库访问层

问题描述:

由于我是MVC的新手,我对数据库连接有几个疑问。ASP.NET MVC数据库访问层

我想建立一个MVC应用程序,到目前为止,我还建2层:型号(在我的课是,没有任何功能)和业务(有我的类的功能,每一个类有它自己的业务类),也有我的MVC应用程序。这两个层都与MVC项目分开,我将它们用作“.dll-s”。我也在使用存储库模式,而依赖注入是由Unity完成的。

现在来棘手的部分(或至少它是我的)。我想将我的应用程序绑定到数据库。我发现的大多数教程都依赖于Entity Framework,但我不想使用它,我想使用ADO.NET(实体框架让我觉得我正在给予我的“权力”,所以我想管理我自己的SQL)。那么最好的办法是什么?我如何从外部访问Web.Config并读取连接字符串(或者我应该照顾数据访问层内的连接字符串)?如何从“外部”管理连接有什么最佳做法?我的意思是我可以轻松地在MVC应用程序中创建一个dbaccess对象,但我不想那样做。在MVC应用程序中,我只想使用我的业务(对象)类。

还有一件事。 DataAccess的最佳实践是什么:构建一个新层,还是在我的业务层中包含功能也很好?我更倾向于构建第三层,因此我可以将此代码用于任何其他应用程序,但也许还有其他一些方法。

您可以创建另一个名为“DAL”的项目来处理使用纯ADO.NET构建的数据访问层。您将添加对实体项目的引用,以便您可以从您的数据访问方法中返回这些实体。现在从业务层向数据访问项目添加引用,以便您可以从业务层类访问这些数据访问方法。从您的MVC项目中,添加对您的业务项目的引用(如果您在MVC项目中使用这些实体对象,则实体项目)。通过这种方式,您的MVC项目不知道您使用的是什么数据访问技术。

您不需要在DAL项目中拥有连接字符串,只要在这些项目之间添加了适当的引用,就将其保留在您的UI MVC项目中,并且您的DAL项目将能够读取它。

+0

嗨,这是我想到的东西;)但是,因此我将不得不建立一个dataaccess类为我的模型对象的每一个,我将依赖于我的模型。有没有更通用的方式,所以我不必告诉我的数据访问哪个类正在处理? – user3466562