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

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()..等

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

热门答案

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

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

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

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

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

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



Related

许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow