关于如何将model.tt
(包含POCO实体类)文件移动到Vs2010中的单独项目,我已经看到了关于这个问题的几个答案
这在EF5中似乎不起作用,似乎原因是model.tt
文件是edmx文件的子项。
如何在Entity Framework 5 / VS 2012中实现相同目标?
答案 0 :(得分:1)
我知道的最佳答案是简单地从当前项目中剪切model.tt(插入适当的名称)文件并将其添加到所需的项目中。到目前为止,我已经完全重写了EF使用的.tt文件。
我喜欢分离关注点并在以下项目中放置适当的.tt文件:DataAccess(model.context.tt),Entity(model.tt)和Repository(model.repository.tt)。当然,你必须摆弄.tt文件的内容,将其指向.edmx,但这很简单。要使所有t4变换发生,VS2012中有一个选项,Build |转换所有T4,它将处理解决方案中的所有T4文件。
请遵循以下流程:
如果尚未存在,请创建.edmx。
右键单击,选择“添加代码生成项”以添加EF DbContext 5.0生成器(如果您还没有这样做)(我假设您想要修改它,但此过程适用于任何t4)。
这将为您提供两个.tt文件 - 模型和model.context。
删除到Windows资源管理器,找到目录中的model.tt文件,将其复制到“Entity”目录(您希望t4生成的位置)。
返回VS,将其从.edmx项目中删除,并将“添加现有项目”删除到新项目中。
例如,如果您的两个项目如上所述(DataAccess包含.edmx,Entity包含模型信息),那么您需要在model.tt文件中更改输入文件的名称。 value(第5行)“const string inputFile =”.edmx的名称“到”.. \目录包含.edmx \ name of .edmx“。
运行T4,它就可以了。
答案 1 :(得分:0)
如果你的意思是没有生成代码,那就是一个bug。这是我们用于跟踪它的错误http://entityframework.codeplex.com/workitem/453 - 它包含一些变通方法。另一个选项是通过右键单击tt文件并选择“运行自定义工具”
来强制生成代码