我试图实现以下应用程序结构
App.Model - UserModel - OrderModel
App.Service - UserService - IUserService
App.Entity - DbContext
网站 - WebAPI - 调用服务
大多数ASP.NET 5应用实例,初始化网站启动文件中的实体框架。比如.AddEntityFrameowrk()..等等。
需要知道如何将Entity分成单独的项目,如果我们从Service项目调用存储库,我们如何启动DBContext。(因为启动文件不适用于类库)
答案 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模型