无法在MVC解决方案中将EDMX文件添加到项目中

时间:2019-02-21 20:14:15

标签: asp.net-mvc entity-framework edmx

我已经创建了一个MVC应用程序。我现在想向解决方案中添加一个新的类库项目,然后向该项目中添加一个EDMX文件。

这曾经很容易。但是现在我必须在.NET Core和.NET Standard之间进行选择。但是似乎选择哪个都没关系,因为如果我使用这两个框架中的任何一个创建类库,Visual Studio都不会提供向其添加EDMX文件的选项!而且我看不到添加标准.NET Frameworks类库的选项。

那么,将新项目添加到我的MVC解决方案,然后将EDMX文件添加到该项目的秘诀是什么?

注意:我确实可以选择将EDMX文件直接添加到MVC项目。但我希望将其放置在一个单独的项目中,这是我之前完成的。

4 个答案:

答案 0 :(得分:1)

EDMX文件已被EF Core弃用,我相信它也已从.net核心项目中删除。 如果需要这样做,则可能需要将其添加到普通的.net 4.5项目中并复制文件,但是将其与.net core或.net标准一起使用将毫无意义。

无论如何,您都应该使用Code First,因为它更干净,更易于使用。

如果您已经拥有数据库,则可以参考此链接,它可以帮助您从数据库中架设类

https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db

答案 1 :(得分:0)

@Jonathan:EDMX文件是旧的处理方式。 EDMX只是一个T4模板,它有助于创建edmx。

使用.Net Core的最佳方法是: 1.创建一个.net核心库项目。从here添加entityframeworkcore nuget包 2.使用此链接,从DB到generate your model's

不再支持EDMX的概念。

希望这会有所帮助。

答案 2 :(得分:-1)

根据您的描述,您使用的是旧的ASP.NET MVC框架,而不是新的Core框架,在这种情况下,您使用的是Full .NET框架。因此,当您创建新的类库项目时,应使用完整的.NET Framework进行此操作,因为.NET Core和.NET Standard不支持EDMX。如果选择了此模型,则可以向其中添加ADO.NET实体数据模型:

enter image description here

答案 3 :(得分:-1)

至少对于EF v6,如果您使用EF迁移,则数据库的每个(“状态” /“目标”)快照(存储在migrations-history db表和迁移文件中)都是一个EDMX文件,解码,保存到文件,然后加载到VS(Visual Studio)中。 ;)

有点深入(或至少具有挑战性),但是“ System.Data.Entity.Migrations.Edm.ModelCompressor”可能会提供线索。

基本上,您可以从一个/相关迁移中提取EDMX。但我确实同意应使用Code-First方法进行实施,而EDMX如今仅是一种开发辅助。