【发布时间】:2018-11-15 04:35:27
【问题描述】:
我正在构建一个包含三个项目的解决方案:
-
.Data(包含实体框架核心类和Writer.cs) -
.ConsoleApp(启动项目,调用Writer.cs) -
.CloudTalker(Web 服务参考和Fetcher.cs)
该解决方案的目的是调用 REST API,从 API 获取实体并使用 Entity Framework Core 将它们存储在数据库中。所有代码都运行良好,但我很肯定有办法改进架构。
从 REST API 获取客户并写入数据库的示例代码流:
-
Program.csin.ConsoleApp实例化Writer.cs并调用方法WriteCustomers()。 -
WriteCustomers获取数据库中客户的最新修改日期 -
WriteCustomers在CloudTalker项目中的Fetcher.cs中调用GetCustomers( latestModifiedDate )。此方法返回Customers的数组(由 REST API 返回的类,而不是实体框架)。 -
WriteCustomers循环遍历数组,将 REST 对象转换为 EF Core 对象并将其放入_context.Customers。 -
Context.SaveChanges()将Customers存储在数据库中。
现在是我的问题/征求意见:
- 我是否进行了适当的关注点分离?困扰我的是 CloudTalker 需要了解 EF 类,或者 EF 类需要了解 REST 类。首选哪种方式?
CloudTalker.Fetcher.GetCustomers( lastModifiedDate )应该返回 EF 类还是 REST 类型的对象? - 我应该如何处理类的命名?现在我有两个
Customer- REST 类型和 EF 类型。不漂亮。 - 我还有什么不同的做法吗?
提前感谢您分享任何见解。
【问题讨论】:
标签: c# rest entity-framework-core