C# 将EF实体映射到POCO业务实体
我们必须重构一个遗留项目,该项目由EF5、VS 2012和SQL Sevrer 2008 R2实现。C# 将EF实体映射到POCO业务实体,c#,visual-studio-2012,mapping,entity-framework-5,automapper,C#,Visual Studio 2012,Mapping,Entity Framework 5,Automapper,我们必须重构一个遗留项目,该项目由EF5、VS 2012和SQL Sevrer 2008 R2实现。 有不同的层: 包含POCO类的业务层 实现存储库模式的数据访问层 上下文类(使用DbContext) 目前,业务POCO类和EF实体是相同的。没有映射,但使用T4模型模板生成的实体也被用作业务实体,因此,业务逻辑被注入使用分部类作为实体扩展 目标是解耦实体,将EF实体移动到单独的项目中,从而创建一个模型层。我的想法是在业务层创建表示模型层中相对对应对象的业务对象 但是,我是否必须手动为两个层
有不同的层:
- 包含POCO类的业务层
- 实现存储库模式的数据访问层
- 上下文类(使用DbContext)
但是,我是否必须手动为两个层之间的所有属性创建映射(在某些情况下,一个表甚至可以有40个字段)?可以使用Automapper来实现这一点吗?是的,可以使用Automapper。但我建议您使用代码优先的方法——直接持久化域实体。您可以手动编写实体框架映射,也可以使用生成它们。这将从您的系统中删除不必要的复杂性。Whoa、EF5、VS2012和SQL Server 2008现在是“遗留”吗?这大大放松了人们通常理解的“遗留软件”的定义…:)我指的是遗留项目,从某种意义上说,我们认为它已经存在,我们必须对它进行相应的更改/重构。也许是我这边的定义问题。感谢lazyberezovsky的链接,我将尝试使用该工具,看看如何适合我们的解决方案。