实体框架数据库首先.Net核心

coo*_*000 5 c# entity-framework asp.net-core-2.0 .net-standard-2.0

我有一个.Net Standard 2.0类库项目,我想为它添加实体框架.我已将Entity Framework Core包添加到项目中,但当我尝试向项目添加新项时,不会显示实体框架模板.我在网上看了一下,我似乎找到的就是Code First的说明!

如何恢复数据库的第一个功能?

Dav*_*oft 8

EF Core不会,也绝不会支持设计人员使用基于EDMX的Database First工作流程.EF Core将所有对象到数据库映射存储在源代码中的Attributes和Fluent API映射中.

在EF 6中,"Code First"一词意味着两个截然不同的东西.一个是代码优先建模工作流,其中数据库是从.NET类生成的."Code First"的另一个含义就是映射元数据嵌入在源代码(Attributes/Fluent API)中,而不是嵌入在EDMX文件中.EF 6支持两种不同的数据库优先工作流程.数据库优先使用EDMX,工作流正式称为"现有数据库中的代码优先",但可以将其称为"基于代码的映射的数据库优先".

在EF Core中,您的代码将始终具有映射,因此在这种意义上它是"代码优先".但是,您仍然可以执行数据库优先设计工作流,并编写与现有数据库匹配的实体和映射代码.

您可以使用scaffold-dbcontextPackage Manager控制台或dotnet ef dbcontext scaffoldCLI命令从现有数据库生成实体类和映射元数据.请参阅带有现有数据库的ASP.NET Core上的EF Core入门

  • 谢谢你的回答。它清除了一些事情。然而,强迫人们使用 CLI 是可笑的,似乎是一个重大的倒退。 (2认同)