Entity framework 将EF5数据库的第一个Poco类移动到单独的项目vs2012 EF5

Entity framework 将EF5数据库的第一个Poco类移动到单独的项目vs2012 EF5,entity-framework,visual-studio-2012,entity-framework-5,poco,database-first,Entity Framework,Visual Studio 2012,Entity Framework 5,Poco,Database First,关于如何将model.tt(其中包含POCO实体类)文件移动到Vs2010中的单独项目,我已经看到了关于这个问题的几个答案 这在EF5中似乎不起作用,原因似乎是model.tt文件是edmx文件的一个子项 如何在Entity Framework 5/VS 2012中实现同样的目标 如果你的意思是没有生成代码,那就是一个bug。这就是我们用来跟踪它的bug——它包含一些解决方法。另一个选项是通过右键单击tt文件并选择“运行自定义工具”来强制代码生成。如果您的意思是没有生成代码,那么它就是一个bug

关于如何将
model.tt
(其中包含POCO实体类)文件移动到Vs2010中的单独项目,我已经看到了关于这个问题的几个答案

这在EF5中似乎不起作用,原因似乎是
model.tt
文件是edmx文件的一个子项


如何在Entity Framework 5/VS 2012中实现同样的目标

如果你的意思是没有生成代码,那就是一个bug。这就是我们用来跟踪它的bug——它包含一些解决方法。另一个选项是通过右键单击tt文件并选择“运行自定义工具”来强制代码生成。如果您的意思是没有生成代码,那么它就是一个bug。这就是我们用来跟踪它的bug——它包含一些解决方法。另一个选项是通过右键单击tt文件并选择“运行自定义工具”来强制代码生成。据我所知,最好的答案是简单地从当前项目中剪切model.tt(插入适当的名称)文件并将其添加到所需的项目中。我甚至重写了EF正是出于这个原因使用的.tt文件

我喜欢关注点分离,并将适当的.tt文件放在以下项目中:DataAccess(model.context.tt)、Entity(model.tt)和Repository(model.Repository.tt)。当然,您必须修改.tt文件的内容以将其指向.edmx,但这很简单。要使所有t4转换发生,VS2012中有一个选项Build | Transform all t4,它将在解决方案中处理所有t4文件

遵循以下流程:

如果.edmx不存在,请创建它

右键单击,选择“添加代码生成项”以添加EF DbContext 5.0生成器(如果您还没有这样做的话)(我想这是您想要修补的生成器,但此过程适用于任何t4)

这将获得两个.tt文件-model和model.context

拖放到windows资源管理器,在目录中找到model.tt文件,将其复制到“实体”目录(t4生成到的任何位置)

回到VS,将其从.edmx项目中删除,并将“添加现有项”添加到新项目中

例如,如果您的两个项目的名称如上所述(DataAccess包含.edmx,Entity包含模型信息),那么您需要将model.tt文件中输入文件的名称更改为值(第5行)“const string inputFile=“name of.edmx”改为“.\Directory containing.edmx\name of.edmx”


运行T4,它就可以正常工作。

我所知道的最佳答案是从当前项目中简单地剪切model.tt(插入适当的名称)文件,并将其添加到所需的项目中。我甚至重写了EF正是出于这个原因而使用的.tt文件

我喜欢关注点分离,并将适当的.tt文件放在以下项目中:DataAccess(model.context.tt)、Entity(model.tt)和Repository(model.Repository.tt)。当然,您必须修改.tt文件的内容以将其指向.edmx,但这并不重要。要使所有t4转换发生,VS2012中有一个选项,Build | Transform all t4,它将在解决方案中处理所有t4文件

遵循以下流程:

如果.edmx不存在,请创建它

右键单击,选择“添加代码生成项”以添加EF DbContext 5.0生成器(如果您还没有这样做的话)(我想这是您想要修补的生成器,但此过程适用于任何t4)

这将获得两个.tt文件-model和model.context

拖放到windows资源管理器,在目录中找到model.tt文件,将其复制到“实体”目录(t4生成到的任何位置)

回到VS,将其从.edmx项目中删除,并将“添加现有项”添加到新项目中

例如,如果您的两个项目的名称如上所述(DataAccess包含.edmx,Entity包含模型信息),那么您需要将model.tt文件中输入文件的名称更改为值(第5行)“const string inputFile=“name of.edmx”改为“.\Directory containing.edmx\name of.edmx”


运行T4就可以了。

嗯,没有生成代码,但有两个T4模板,我希望其中一个移动到单独的程序集。嗯,没有生成代码,但有两个T4模板,我希望其中一个移动到单独的程序集。