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