.net - Entity Framework 与表示层分离

标签 .net asp.net-mvc entity-framework asp.net-mvc-4

我正在设置一个项目,并将各层分为表示层、业务层和数据层。

演示引用商业 数据引用 业务 企业只知道自己

对于表示层,我使用 MVC,对于数据层,我使用 Entity Framework 。在使用 MVC 应用程序时,使用 IOC 通过业务层访问数据库时出现以下错误

未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的 Entity Framework 提供程序。确保提供程序已在应用程序配置文件的“entityFramework”部分中注册

如果我使用 nuget 将 Entity Framework 添加到 MVC 项目中,一切都会很好并且工作正常。然而,我的目的是分离层,所以这样做看起来很奇怪。

您对如何解决这个问题有什么想法吗?

谢谢

最佳答案

如果您使用单个项目将所有这些层组合在一起,则没有其他方法。必须为使用 Entity Framework 的项目指定 Entity Framework 配置。但是,这并不一定会破坏您的目标分层结构。尽管表示层实际上可以直接访问数据而不是通过数据层,但您可以将其设计为不这样做,即始终使用数据提供程序获取数据(例如使用 UnitOfWork)。

另一种方法是为每一层创建单独的应用程序/项目。您的数据层将是一个“独立”项目,具有自己的配置。然后,您的表示层将引用数据层项目,并通过它提供的方法与其进行通信,以交换数据。

关于.net - Entity Framework 与表示层分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743418/

相关文章:

asp.net-mvc - asp.net mvc 从包中排除 css 文件

c# - 在 ASP.NET Core 中搭建现有数据库(Scaffold-DbContext)

c# - 在通用存储库中使用 IEnumerable<T> 和 IQueryable<T>

asp.net-mvc - SimpleMembership MVC 4从在webpages_Roles中具有角色的UserProfile获取数据

c# - Android和C#之间的加密

c# - Azure:将控制台 application.exe.config(从 app.config 生成)复制到 Azure 包

c# - .csproj 中的 CopyToPublishDirectory

javascript - 如何从 3 个选项卡 API 中提取房地产列表?

asp.net-mvc - 在routes mvc中添加和调用公司名称

c# - ASP.NET MVC session 为空。未设置 session 变量