【问题标题】:Cannot generate DB from EDMX - XAML file does not exist无法从 EDMX 生成数据库 - XAML 文件不存在
【发布时间】:2015-01-06 11:56:53
【问题描述】:

在一个带有 EDMX 实体模型的 EF 项目中,当我右键单击并点击 Generate database from Model... 我得到错误:

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

我的硬盘上根本不存在带有“生成”一词的 XAML 文件。我以为我用 VS 2013 和 NuGet 包安装了所有我需要的东西。

我还安装了 Entity Framework 6 Tools for Visual Studio 2012 & 2013,但没有添加 XAML 文件,错误仍然出现。

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

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

  • 适用于 Visual Studio 2013 的实体框架 6.1.2 工具
  • 适用于 Visual Studio 2012 的实体框架设计器 -chs

我错过了什么?

【问题讨论】:

  • 开始为自己解决这个问题,如果我对其进行排序,将发布答案。该 XAML 文件对 Google 来说很难。试图查看 TPH 策略是否“退出”以支持 TPT 并因此使用不同的 XAML 文件...

标签: entity-framework visual-studio-2013


【解决方案1】:

我认为我的旧项目设置为使用 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

我似乎记得(我多年来一直在签订 no-sql 合同,最后一次接触 EF 是在 v4 中)我不喜欢 Table-per-Hierarchy 并且应该使用 Table-per-Type。我觉得在过去的几年里,这已经成为 EF 中的普遍感觉,或者模型优先被“不强调”而支持代码优先,它支持 TPH 并以其他方式生成数据库?猜测。

所以我认为答案是:

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

如果真的需要 TPH,那么使用 PowerPack(虽然它说 VS2010)或者可能先使用代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 2023-04-04
    • 2010-09-15
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多