无法从EDMX生成DB - XAML文件不存在

时间:2015-01-06 11:56:54

标签: entity-framework visual-studio-2013

在具有EDMX实体模型的EF项目中,当我右键单击并按从模型生成数据库... 时,我收到错误:

  

尝试从模型生成数据库脚本时发生异常,因为指定的工作流文件'C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Entity Framework Tools \ DBGen \通过T4生成T-SQL(TPH).xaml'不存在。

我的硬盘上根本没有包含“生成”一词的XAML文件。我以为我安装了VS 2013和NuGet软件包所需的全部内容。

我还为Visual Studio 2012安装了 Entity Framework 6工具& 2013 但未添加任何XAML文件,错误仍然显示。

在MSDN上,生成数据库向导在 ADO.NET实体数据模型工具http://msdn.microsoft.com/en-us/library/vstudio/bb399249(v=vs.100).aspx)下讨论,但我无法在线下载或从VS扩展中找到它商店”。

在Windows程序和功能中,我将这些项目包含在“实体”中:

  • 实体框架6.1.2 Visual Studio 2013工具
  • Visual Studio 2012的实体框架设计器-enu

我错过了什么?

1 个答案:

答案 0 :(得分:0)

我认为我的旧项目已设置为使用TPH,但该策略已不再可用,或者从未可用,我忘记了我安装了Powerpack来获取它。或者从未使用过TPH。

这句话很有趣,来自博客:

“获得了允许生成TPH映射的EF Powerpack。” - http://www.jefim.eu/blog/2013/01/entity-framework-tpt-vs-tph.html

PowerPack:https://visualstudiogallery.msdn.microsoft.com/df3541c3-d833-4b65-b942-989e7ec74c87

我似乎记得(我多年来一直处于无sql合约,最后一次触及v4中的EF),我不喜欢Table-per-Hierarchy,应该使用Table-per-Type。我觉得在过去的几年里,这已经成为EF的一般感觉,或者可能是模型 - 首先是“不再强调”,支持代码优先,它支持TPH并以其他方式进行数据库生成?猜测。

所以我认为答案是:

使用模型优先,TPH不可用,使用TPT。

如果确实需要TPH,那么请使用PowerPack(虽然它说VS2010)或者可能是代码优先。