我刚刚开始调查Microsoft的实体框架(EF),以便替换现有的Linq2Sql数据访问库。
在完成一些示例项目后,我遇到了“添加代码生成项”(设计器表面上的上下文菜单),特别是'EF 5.x DbContext Generator'模板。
此模板为模型生成一些很好的简单(POCO)类对象。
在我的整体结构中,我想将这些类提取/移动到不同的项目/程序集中,以便我可以从通用存储库中引用它们,即我想将应用程序的数据访问层与EF实体数据模型分离。
这是可能的,还是我需要为每个类对象手动创建一个地图(例如.ToDomainModel(),.FromDomainModel())。
道歉,如果这是一个愚蠢的问题 - 在我的辩护中,我是EF的新手,并且仍然掌握着数据驱动域的概念。
答案 0 :(得分:1)
这是可能的,但你将失去部分自动魔法。自动生成的项目是T4模板。如果你打开它,你会发现在.edmx
文件的起始相对路径的某个地方。如果移动模板,则只需相应地更新路径以指向要用于生成的.edmx
文件。
缺点是在保存.edmx
文件时将模板移动到其他位置会破坏自动类重新生成(但我没有搜索解决方案,因此可能使其工作)。因此,您必须在每次保存对EDMX文件的更改后手动运行自定义工具(.tt文件上下文菜单中的项目)。