c# - 与 REST 客户端应用程序共享实体框架生成的模型的方法
问题描述
我有一个从数据库返回信息的 ASP.NET Core Web API。我正在使用 Entity Framework Core 并将 DB 上下文和模型抽象为“DataAccessLibrary”类库。我使用 DB First 方法,搭建数据库,这为我创建了模型。
我现在想编写一个可以向 Web API 发出请求的 REST 客户端应用程序。我想使用 DataAccessLibrary 类库中使用的相同模型来反序列化响应 JSON 数据。我想避免手动复制模型。
如何在不直接依赖 DataAccessLayer 类库的情况下与客户端应用程序共享模型?(我不想这样做的唯一原因是因为我不希望客户端也依赖于实体框架并且也不想共享 DB_Context)
如果我不清楚,这是我的项目结构:
我想以某种方式在 REST 客户端应用程序中使用 DataAccessLibrary 的模型,而不必手动复制它们。
解决方案
我想假设您的 DataAccess 是您的 DbContext。面向服务的架构很好用。创建另一个名为 ViewModels 的文件夹,它就像您的模型的副本,但具有重要的变量。然后通过创建两个单独的文件夹来使用服务方法:1)接口 2)接口的实现
依赖注入和与 DbContext 的交互是在您的实现中完成的,而不是在您的控制器中完成的。模型用于您的实现。
控制器应该只包含您的端点并使用您界面中的方法。ViewModel 在您的控制器中使用。
推荐阅读
- python - 拟合后绘图不更新
- php - PHP cURL - 如何通过 HTTP 请求将变量的内容作为文件上传?
- ios - iOS 在 Collection View Items 的详细信息页面之间滑动/分页
- c++ - 在委托构造函数时,是链式还是让每个构造函数调用一个泛型构造函数更好?
- java - Java:TCP Socket 数据丢失
- javascript - jQuery datepicker - 如何覆盖初始化?
- python - 使用 csv.DictWriter 水平写入列表值
- python-3.x - input() 返回 Traceback(最近一次调用最后一次):文件“
",第 1 行,在 NameError:名称“___”未定义 - python - 如何使用 python 创建 $2y$14 河豚哈希?
- macos - 递归删除 N 行并在每个匹配模式的文件中添加 M 行