与REST客户端应用程序共享实体框架生成的模型的方法

问题描述 投票:0回答:1

我有一个ASP.NET Core Web API,它从数据库返回信息。我正在使用Entity Framework Core,并将数据库上下文和模型抽象为“ DataAccessLibrary”类库。我使用了DB First方法,搭建了数据库,然后为我创建了模型。

我现在想编写一个REST客户端应用程序,它可以向Web API发出请求。我想使用DataAccessLibrary类库中使用的相同模型来反序列化响应JSON数据。我要避免手动复制模型。

如何在不直接依赖DataAccessLayer类库的情况下与客户端应用程序共享模型? (我不想这样做的唯一原因是,我不想让客户端也对实体框架具有依赖性,也不想共享DB_Context)

如果不清楚,这是我的项目结构:

enter image description here

c# .net-core entity-framework-core asp.net-core-webapi
1个回答
1
投票

我想假设您的DataAccess是您的DbContext。面向服务的体系结构很好使用。创建另一个名为ViewModels的文件夹,它类似于您的模型的副本,但具有重要的变量。然后通过创建两个单独的文件夹使用服务方法:1)接口2)接口的实现

依赖注入和与DbContext的交互是在实现中完成的,而不是在控制器中完成的。在您的实现中使用模型。

控制器应仅包含您的端点并使用您界面中的方法。控制器中使用了ViewModel。

© www.soinside.com 2019 - 2024. All rights reserved.