4

当我在 Visual Studio 2012 中创建新的 ADO.NET 实体数据模型时,它为我提供了一个免费的 EF 5.x DbContext Generator 代码生成项。换句话说,如果我在解决方案资源管理器中展开我的 edmx 项目,我会看到一对 .tt 文件,理论上,它们应该会神奇地生成包含我的 POCO 类和我的 DbContext 类的 .cs 文件。

我的问题是我无法说服 Visual Studio 实际创建这些类。Model1.tt 包含一个空的 Model1.cs,Model1.Context.tt 包含一个 DbContext 对象,但它不包含与我的实体关联的 DbSet<> 集合。

如果我从我的解决方案中删除两个 .tt 项,然后右键单击设计器图面,选择添加代码生成项,然后添加一个 EF 5.x DbContext 生成器,然后一切正常,我得到生成的类。

我已经验证了我删除的 *.tt 文件实际上与我重新添加的文件相同。

有什么智慧之言吗?这是一个错误,还是我错过了什么?

鲍勃

4

1 回答 1

7

检查这个。当 EDMX 不在项目根目录中时,VS2012 中有一个错误会导致此行为。因此,您可以使用您的解决方法并手动添加模板,或者您必须手动触发自定义工具以强制生成代码,如链接中所述。

于 2012-09-01T22:22:30.480 回答