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

Mah*_*nji 5 entity-framework-core asp.net-core-mvc asp.net-core

我正在尝试实现以下应用程序结构

App.Model - UserModel - OrderModel

App.Service - UserService - IUserService

App.Entity - DbContext

网站 - WebAPI - 调用服务

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

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

Mar*_*arn 0

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

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

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

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

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

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