我们刚刚开始移出旧版代码库,并开始对大多数新软件使用.net和Entity Framework Core。
我们已经将数据库从旧平台迁移到SQL Server,但是数据很旧并且规范化程度很低。由于可能会对遗留语言中的(大型)现有代码库造成潜在影响,因此我们无法一次完成一个标准化项目,因此我们将在我们的数据库中添加主键和外键定义,并从中重新生成Entity Framework Core模型。随着更多表格对于该框架有效而从头开始。
我觉得这样做会丢失Entity Framework Core的一些重要功能,但是我对框架的真正了解还不足以识别它是什么。我知道生成的模型缺乏完整性(提示我的问题是因为带有Identity列的表实际上没有将该列标记为ValueGeneratedOnAdd();
,而该表根本没有出现在OnModelCreating
方法中),但是我不知道这是数据库问题还是我犯的另一个错误。
我的问题是:Entity Framework Core中有什么功能来管理快速发展的数据库模型?我应该为自己做什么,并且应该依靠Scaffold-DBContext
命令做什么?
答案 0 :(得分:1)
使用EF Core,您需要做的大部分事情将由Scaffold-DBContext完成。现在唯一无法处理的是DBQuery集。您将必须手动编写这些代码。除此之外,其他所有命令都可以很好地处理。
就ValueGeneratedOnAdd()而言,我唯一一次将其视为问题的是Versioned table。如果您有版本表,Scaffold-DBContext不会将其添加到那些字段中,而您必须拥有那些,因此您必须手动将其添加到代码中。