从实体框架中提取类对象

时间:2012-08-29 11:43:37

标签: domain-driven-design entity-framework-5

我刚刚开始调查Microsoft的实体框架(EF),以便替换现有的Linq2Sql数据访问库。

在完成一些示例项目后,我遇到了“添加代码生成项”(设计器表面上的上下文菜单),特别是'EF 5.x DbContext Generator'模板。

此模板为模型生成一些很好的简单(POCO)类对象。

在我的整体结构中,我想将这些类提取/移动到不同的项目/程序集中,以便我可以从通用存储库中引用它们,即我想将应用程序的数据访问层与EF实体数据模型分离。

这是可能的,还是我需要为每个类对象手动创建一个地图(例如.ToDomainModel(),.FromDomainModel())。

道歉,如果这是一个愚蠢的问题 - 在我的辩护中,我是EF的新手,并且仍然掌握着数据驱动域的概念。

1 个答案:

答案 0 :(得分:1)

这是可能的,但你将失去部分自动魔法。自动生成的项目是T4模板。如果你打开它,你会发现在.edmx文件的起始相对路径的某个地方。如果移动模板,则只需相应地更新路径以指向要用于生成的.edmx文件。

缺点是在保存.edmx文件时将模板移动到其他位置会破坏自动类重新生成(但我没有搜索解决方案,因此可能使其工作)。因此,您必须在每次保存对EDMX文件的更改后手动运行自定义工具(.tt文件上下文菜单中的项目)。