首页 > 解决方案 > 与 REST 客户端应用程序共享实体框架生成的模型的方法

问题描述

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

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

如何在不直接依赖 DataAccessLayer 类库的情况下与客户端应用程序共享模型?(我不想这样做的唯一原因是因为我不希望客户端也依赖于实体框架并且也不想共享 DB_Context)

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

在此处输入图像描述

我想以某种方式在 REST 客户端应用程序中使用 DataAccessLibrary 的模型,而不必手动复制它们。

标签: c#.net-coreentity-framework-coreasp.net-core-webapi

解决方案


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

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

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


推荐阅读