带有ASP.NET Core 3的实体框架6.3

时间:2019-09-24 07:40:08

标签: c# asp.net-core entity-framework-6

如何将Entity Framework 6.3与ASP .NET Core 3一起使用?具体来说,我希望从现有数据库生成模型。除非我针对完整的.NET Framework,否则似乎无法添加实体数据模型(但是,.NET Core 3不支持Entity Framework 6.3吗?)

2 个答案:

答案 0 :(得分:6)

如果我正确理解了您的问题,则希望使用.Net Core和Entity Framework从数据库的表中生成模型。

您可以通过在项目中使用Entity Framework Core和Tools软件包来做到这一点。

  dotnet add package Microsoft.EntityFrameworkCore.SqlServer
  dotnet add package Microsoft.EntityFrameworkCore.Design

还有dotnet ef dbcontext scaffold

示例:

    dotnet ef dbcontext scaffold "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models

根据设计师对EF 6.3的支持,我认为您很不幸:

这是Microsoft目前推荐的方法:

  

如何在.NET Core项目中使用EDMX文件   在工具方面,我们计划在Visual Studio 2019的即将发布的更新中发布更新的EF6设计器,它将与针对.NET Core的项目一起工作(在问题#883中进行跟踪)。

     

在可以使用该新版本的设计器之前,建议您在面向.NET Framework的项目中使用EDMX文件。然后,您可以将EDMX文件以及为实体和DbContext生成的类添加为.NET Core 3.0或.NET Standard 2.1项目。

https://github.com/efcore/EdmxDotNetCoreSample/

答案 1 :(得分:1)

您可以使用Visual Studio对数据库中的EF6代码优先模型进行逆向工程,但是我不相信默认情况下在.NET Core项目中启用了它。但是,您可以 在.NET Framework项目中生成模型,然后复制文件或稍后将项目转换为.NET Core。

如果您在Visual Studio中安装了Entity Framework 6 Tools组件,那么从.NET Framework项目中,您应该可以Add -> New Item -> ADO.NET Entity Data Model。这将启动一个向导,以选择应在哪些表中生成模型。

(我认为至少从VS 2017开始就存在这种情况-由于EF 6.3 / .NET Core 3.0,我认为我们正在使用VS 2019。)