在 VS2017 中找不到 ADO.net 实体数据模型模板

Posted

技术标签:

【中文标题】在 VS2017 中找不到 ADO.net 实体数据模型模板【英文标题】:Can't find ADO.net Entity Data Model template in VS2017 【发布时间】:2017-11-02 02:50:01 【问题描述】:

我试图在 Visual Studio 2017 中创建一个 ASP.NET MVC Web 应用程序。我需要采用 EF 数据库优先的方法来完成这项工作。

很遗憾,我在“数据”模板文件夹中找不到 ADO.NET 实体数据模型模板:

我尝试了以下对我不起作用的建议。

    通过 NuGet 安装 Entity Framework 6.x 双击最新的 msi 文件手动安装包 将 .NET 版本从 4.6.x 更改为 3.5

注意:我的机器上都安装了 VS 2015 和 VS 2017。只有 VS 2017 有问题。

我创建了 ASP.NET MVC 项目如下:

File -> New -> Project -> Web -> ASP.NET Web Application (.NET Framework) -> MVC

有人知道这个问题的解决方案吗?

【问题讨论】:

能否尝试修复Visual Studio的安装 试过....它不工作:( 请试试这个链接:***.com/questions/32437266/… 您是否安装了桌面开发工作负载? @Sandaru 可能会再做一次。按照这些步骤(它对我有用)转到工具 > 扩展和更新并转到在线并搜索 Entity Framework 6 Power Tools 【参考方案1】:

要解决上述问题,您可以修改 Visual Studio 2017。您可以按照以下步骤操作。

    转到计算机的控制面板\程序\程序和功能。

    选择Microsoft Visual Studio 2017,右键更改。

    它将进入 Visual Studio 产品窗口,现在单击修改按钮。

    现在在 Web & Cloud 部分勾选 ASP.Net 和 Web 开发工作负载并进行修改。

    最终启动 Visual Studio 2017。

【讨论】:

我已经试过了。这不适用于终极版:) .. 感谢您的建议 这已经为我检查过了,但仍然不可用【参考方案2】:
    转到工具 -> 获取工具和功能 选择 Individual components 选项卡并检查 SDK's, libraries, and framework 部分下的 Entity Framework 6 tools

【讨论】:

这已经为我检查过了,但仍然不可用 这个答案,结合@Slauma 的答案在这里 (***.com/questions/11887833/…) 为我修复了它。 注意:“ADO.NET 实体数据模型”选项不会出现在 SharedProject 上 这个答案,结合***.com/a/21074053/1662973 为我修复了它。 Nuget + EF。 它已经为我检查过但没有用。但是,当我创建项目“类库(.NET Framework)”项目而不是“类库(.NET Standard)”时 - 出现了 ADO 选项。【参考方案3】:

对于那些尝试其他解决方案但仍然看不到模板的人...

也许您正在尝试将 ADO EF 添加到 .NET Core 2.0 项目,并且不支持开箱即用的 EF

你有两个选择:

    安装支持 .NET Standard 2.0 的 Core 2.0 SDK 和 NuGet 使用 .NET 4.x 项目而不是 Core

我推荐#1。 VS 2017 实际上并没有安装完整的 Core 2.0 SDK,VS 安装程序也没有提供它(这里的许多 cmets 都在苦苦挣扎)。

我知道,很困惑,对吧?

来自微软:

“您需要下载并安装适合您平台的 .NET Core 2.0 SDK 版本。即使您已安装 Visual Studio 2017 15.3 版也是如此。”

“为了在 .NET Core 2.0 之外的 .NET 平台上使用 EF Core 2.0 或任何其他 .NET Standard 2.0 库(例如,使用 .NET Framework 4.6.1 或更高版本),您需要一个 NuGet 版本,即了解 .NET Standard 2.0 及其兼容框架”

https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-entity-framework-core-2-0/

现在...安装了所有的东西,但仍然看不到 ADO 模板?我相信这是因为它已被弃用/过时。这是让 EF 在 .NET Core 中工作的方法: https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db

希望这会有所帮助!不客气。

【讨论】:

【参考方案4】:

我的解决方案是将“edmx”文件从另一个项目复制到具有 asp.net 核心的项目中,并且运行良好,具有所有功能,问题仅在列表中可用的模板中。

【讨论】:

【参考方案5】:

在我的例子中,我以前使用过 ADO .NET,所以我知道它已经安装了..所以我只是在右上角的搜索框中输入了 ADO,它就在那里, 解决了 !希望这会有所帮助

【讨论】:

【参考方案6】:

我必须使用 .Net 4.5.2 创建一个新项目,然后才能添加 ADO.NET 实体数据模型。

    文件 -> 新建项目 选择 Web -> ASP.NET Web 应用程序 (.NET Framework) 将窗口底部的 Framework 设置为 .NET Framework 4.5.2 使用空模板 右键单击项目(不是您的解决方案) -> 添加 -> 新建项目 选择数据 -> ADO.NET 实体数据模型

【讨论】:

【参考方案7】:
    文件 -> 新建项目 选择 Web -> ASP.NET Web 应用程序 (.NET Framework) image 1 右键单击模型 -> 添加 -> 新项目 (注意:它不适用于 App_Data 等其他文件夹) image 2 选择 Visual C# 然后选择 ADO.NET 实体数据模型 image 3

【讨论】:

投反对票;这几乎是这个答案的副本:***.com/a/49677481/2170192;有什么意义?!【参考方案8】:

您的 EF 工具丢失。您需要再次运行安装程序并从“选择包”中选择enitityframeworktools 以获取项目中所需的选项。

【讨论】:

【参考方案9】:

我的情况是我的项目->属性->目标框架是 2.0,我更改为 4.5 并且知道它可以工作,知道我看到了 ado.net 实体数据模型。

【讨论】:

【参考方案10】:

不是这样的解决方案,但请检查您添加的项目是否适用于 .NET Framework 而不是 .NET Standard。 .NET Framework 包含用于添加诸如 ADO.NET 实体数据模型之类的模板。

【讨论】:

【参考方案11】:

您似乎添加了不支持 ADO.net 实体数据模型的“类库(.NET 标准)”。您可以添加“类库(.NET Framework)”

【讨论】:

This 可以帮到你。 工作,谢谢。 这是正确答案!我们应该使用类库(.NET Framework)添加一个项目【参考方案12】:

我在 VS2017 社区版中遇到了同样的问题。 我之前尝试过以下但没有奏效:

为“SQL Server Data Tools”安装了新功能。 已安装 NuGet 库。

最后经过仔细调查,我的目标是错误的See Image: you should be selected .NET Framework instead of .NET Standard

对我来说,在以“.NET 框架”而不是“.NET 标准”为目标工作时更改为正确的项目类型。

【讨论】:

【参考方案13】:

首先在您的项目应用程序属性中将框架更改为 4.5.2。enter image description here 只需在解决方案资源管理器中右键单击您的应用程序(不是项目解决方案),然后选择添加菜单并在添加菜单下选择 ADO.Net。使用 ADO.NET 随心所欲。祝你好运。

【讨论】:

【参考方案14】:

只需打开Visual studio setup。如果您已经安装,请选择修改部分并勾选.NET desktop development选项并安装它。

【讨论】:

【参考方案15】:

Visual Studio 根据您单击的区域显示可用项目。右键单击项目名称根 -> 添加 -> 新项目 -> 数据您将能够选择 ADO.NET 实体数据模型

【讨论】:

【参考方案16】:

Visual Studio 根据您单击的区域显示可用项目。 右键单击项目名称根 -> 添加 -> 新项目 -> 数据 您将能够选择 ADO.NET 实体数据模型

【讨论】:

【参考方案17】:

Core 中确实没有此功能,这可能无法直接回答问题。但 Core 提供了 逆向工程 命令行,我已成功将其用于现有数据库的项目。

您只需在包管理器控制台中运行以下命令,它将根据现有数据库为您生成模型:

Scaffold-DbContext 'Data Source=.\SQLEXPRESS;Initial Catalog=DbName;Integrated Security=True;MultipleActiveResultSets=True' Microsoft.EntityFrameworkCore.SqlServer

或者直接从命令行使用点网。

dotnet ef dbcontext scaffold "Data Source=.\SQLEXPRESS;Initial Catalog=DbName;Integrated Security=True;MultipleActiveResultSets=True" Microsoft.EntityFrameworkCore.SqlServer

要了解有关此功能的更多信息,您可以在 Microsoft 页面上阅读更多信息:https://docs.microsoft.com/en-us/ef/core/managing-schemas/scaffolding

【讨论】:

感谢您的提示,实际上查看了您提供的链接,这很有效:第 1 步:安装包 Microsoft.EntityFrameworkCore.SqlServer 第 2 步:Scaffold-DbContext 'Data Source=.\SQLEXPRESS ;Initial Catalog=DB;Integrated Security=True;MultipleActiveResultSets=True' Microsoft.EntityFrameworkCore.SqlServer【参考方案18】:

我认为您选择了类库(.NET Standard)而不是类库(.NET 框架), 尝试选择类库(.NET 框架)你会得到它。

【讨论】:

【参考方案19】:

基本上我发现的是当您选择未显示在数据选项卡下的 .Net Core Project EF 时。您需要选择 .Net Framework 而不是 .Net Core。然后你会在数据选项卡下找到所有的东西。

【讨论】:

【参考方案20】:

工具-->点击获取工具和功能-->点击修改--> 点击单个组件--> 勾选 Entity Framework 6 Tools 的 CheckBox -->点击Modify--> 你会得到一个弹出窗口-->点击Retry(如果没有关闭,点击Continue

现在启动 VS,这次检查数据 ADO.NET 实体模型将被添加。

请查看这篇文章 http://dotnet-jigyasa.blogspot.com/2018/03/adonet-entity-data-model-missing-visual.html 为我工作。

【讨论】:

谢谢,我忘了.NET桌面开发之前没有勾选过。【参考方案21】:

确保您是正确的 - 单击适当的项目,而不是解决方案。

各自的 UI 看起来几乎相同;他们甚至有相同的键盘快捷键。如果您希望它在那里,解决方案中的那个将“错过”数据选项卡;例如来自截图。

另外,根据您之前的帖子,请确保: 一种。一个支持实体框架的项目和 湾。您确实安装了相应的工具。

【讨论】:

【参考方案22】:

我遇到了同样的问题。就我而言,已经检查了各个组件下的 Entity Framework 6 工具和 SQL 工具选项。我尝试使用相同的选定组件重新安装,这对我有用。

【讨论】:

好的,当我另外检查并修改了 VS 时,它对我有用。由于重新安装了所选组件,它可能已经工作了。 我已经相应地修改了答案,重新安装对我有用,它可以修复你提到的所需组件【参考方案23】:

我认为您添加了不支持 ADO.net 实体数据模型的“类库(.NET 标准)”。您必须添加“类库(.NET Framework)

【讨论】:

这是一个问题,而不是一个答案。请为此使用 cmets。 你刚刚复制了this answer。还有this 和this【参考方案24】:

如果你不能像我一样去创建一个新项目

并且您确定您选择了正确的类库,对我有用的是进行清理和构建,然后从我的解决方案资源管理器和 whalah 打开一个文件,

希望它有助于这是一个相当广泛和多才多艺的问题

【讨论】:

以上是关于在 VS2017 中找不到 ADO.net 实体数据模型模板的主要内容,如果未能解决你的问题,请参考以下文章

请问VS中的ADO.NET实体数据模型怎么添加?我在VS的联网模版里没找到

怎么我的vs2012没有ado.net实体数据模型??

VS2010里创建ado.net实体模型,根据实体对象创建数据库, 会生成一个.edmx.sql这个文件

带有存储过程的实体框架 VS LINQ to SQL VS ADO.NET? [关闭]

VS 2017 中的 MySQL 和 MVC 实体框架不工作

找不到具有不变名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供程序