EDMX在哪里?

时间:2016-09-20 17:47:32

标签: .net entity-framework-core .net-core

暴露于dotnet Core。在尝试在dotnet核心应用程序中设置EntityFramework.Core的示例测试应用程序中。虽然我能够添加EntityFramework.Core NugGet包但我找不到'添加' - >'新项' - >'数据' - >'ADO.NET实体数据模型'

EntityFramework.Core无法实现这一点吗?

EntityFramework.Core与EntityFramework 7有何不同?

4 个答案:

答案 0 :(得分:14)

Entity Framework Core中没有edmx支持。它只支持代码优先方法。将添加添加新实体数据模型的选项,但它将生成实体类文件而不是edmx文件。工具开发目前仅落后于框架开发。

答案 1 :(得分:10)

.Net核心仍不支持EDMX。要从数据库生成dbcontext和实体,请在程序包管理器控制台中运行以下命令:

Scaffold-DbContext "Server=yourserver;Database=yourdatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

查看https://docs.microsoft.com/en-us/ef/efcore-and-ef6/porting/port-edmx

中的详细信息

您将需要以下软件包:

Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.SqlServer.Design

https://ef.readthedocs.io/en/staging/platforms/aspnetcore/existing-db.html#install-entity-framework

答案 2 :(得分:2)

您可以在点网核心中利用edmx,但仅作为参考,以创建所需的类。

为此,您必须向解决方案中添加一个针对点网框架3.5或更高版本的项目才能使edmx正常工作,并从另一个较旧的项目中添加一个现有的edmx文件,因为Visual Studio 2019没有该模板可用,现在您可以清理它并从sql server中添加实体。

在其他点网核心项目中,您必须添加t4模板文件.tt,这些文件将通过文件系统路径读取edmx文件。您必须编辑.tt文件才能使用点网核心。

再次,您不需要引用点网框架项目,它仅存在,因此edmx可以正常工作。

答案 3 :(得分:1)

作为EDMX的替代,有一个开源扩展可用于进行可视化建模并生成代码优先的EF上下文和类。它既可以使用包含DbContext的已编译程序集,也可以使用现有的实体类C#代码来促进自举模型。在以下位置可用:

https://marketplace.visualstudio.com/items?itemName=michaelsawczyn.EFDesigner https://github.com/msawczyn/EFDesigner

完全公开:我是原始作者和维护者。