我们刚开始摆脱遗留代码库,开始在我们的大多数新软件中使用.net和Entity Framework Core。
我们已将数据库从旧平台迁移到SQL Server,但数据已经过时且标准化不足。由于遗留语言对(大)现有代码库的潜在影响,我们无法一次性进行规范化项目,因此我们正在向我们的数据库添加主键和外键定义,并从中重新生成我们的实体框架核心模型随着更多表对框架有效而刮擦。
我觉得我们通过这样做错过了Entity Framework Core的一些重要功能,但是我对框架的确定不够了解它是什么。我知道生成的模型缺乏完整性(我的问题是因为带有Identity列的表没有将列标记为ValueGeneratedOnAdd();
,实际上该表根本没有出现在OnModelCreating
方法中)但是我不知道这是不是数据库问题或我正在犯的其他错误。
我的问题是:Entity Framework Core中有哪些功能来管理快速发展的数据库模型?我应该为自己做些什么,我应该依靠Scaffold-DBContext
命令做什么?
使用EF Core,您需要的大部分内容都将由Scaffold-DBContext完成。它现在唯一没有处理的是DBQuery集。您必须手动编码。除此之外,其他一切都由命令非常有说服力地处理。
至于ValueGeneratedOnAdd(),我唯一一次看到这个问题就是Versioned表。如果您有一个版本化的表,Scaffold-DBContext将不会将其添加到这些字段,您必须具有这些,因此您必须手动将这些添加到您的代码中。