我刚开始从事一个使用实体框架的项目。以前,该应用程序传递了 EF 实体,并且它们已完全填充,因此每个代码部分都能够访问具有属性的属性中的属性......
我刚刚创建了域实体,我想将 EF 实体映射到这些域实体。它基本上是一个 1-1 映射。这应该怎么做?有一个 T4 模板可以将 EF 实体映射到 POCO,但它只映射一层深度。如果我想访问 Person -> Car -> Engine 怎么办?我应该如何从 EF 结构转到 POCO 结构并在整个层次结构中进行映射?
我刚开始从事一个使用实体框架的项目。以前,该应用程序传递了 EF 实体,并且它们已完全填充,因此每个代码部分都能够访问具有属性的属性中的属性......
我刚刚创建了域实体,我想将 EF 实体映射到这些域实体。它基本上是一个 1-1 映射。这应该怎么做?有一个 T4 模板可以将 EF 实体映射到 POCO,但它只映射一层深度。如果我想访问 Person -> Car -> Engine 怎么办?我应该如何从 EF 结构转到 POCO 结构并在整个层次结构中进行映射?
您应该使用 AutoMapper 或 ValueInjector 之类的东西。如果您的课程遵循某些约定,那么它工作得很好。如果他们不这样做,您可以定义自定义映射类来为您完成。
在我看来,您不需要创建另一组域实体。POCO 实体旨在用于所有层(恕我直言)。
但是,如果您想将另一组实体映射到 POCO 实体,只需使用Automapper即可。它具有映射对象及其属性的能力。
另一方面,使用 POCO 可以访问 Person -> Car -> Engine 链。只需正确地制作“包含”,就不会出现问题。