ASP.NET 5,希望将实体框架与Web Project分开

时间:2016-02-20 09:59:43

标签: asp.net-core asp.net-core-mvc entity-framework-core

我试图实现以下应用程序结构

App.Model - UserModel - OrderModel

App.Service - UserService - IUserService

App.Entity - DbContext

网站 - WebAPI     - 调用服务

大多数ASP.NET 5应用实例,初始化网站启动文件中的实体框架。比如.AddEntityFrameowrk()..等等。

需要知道如何将Entity分成单独的项目,如果我们从Service项目调用存储库,我们如何启动DBContext。(因为启动文件不适用于类库)

1 个答案:

答案 0 :(得分:0)

在之前的项目中,我采用了在一个解决方案(或多个解决方案)中维护多个ASP.NET项目的方法。这将使您能够从Web应用程序中删除EF依赖项,并使Web应用程序仅与处理所有EF的API进行通信

过去,我创建了一个专门的“域”项目,其中包含所有模型,并且可以被Web应用程序和API项目引用。

所以项目结构看起来像这样

域项目:仅包含代表您的模型的c#类。从“空”项目开始

API:包含您的网络API。使用EF与数据库交互。我个人会为你的模型制作API,但这是个人选择。现在,在ASP.NET核心1.0 RC1中,web api模板很差,所以我从完整的“web应用程序”开始,删除所有默认视图,控制器,脚本等。引用域项目,以便您可以从模型

中构建您的API控制器

Web应用程序:您的主要Web应用程序项目。从“Web应用程序”模板开始,但使用HttpClient I您的控制器使用api进行数据交互。在过去,我创建了一组静态的“api帮助程序类”,以使这项任务更容易,但这又是个人风格的选择。引用域项目,以便您可以将传入的JSON响应转换为完整的.net模型