c# - 使用 Entity Framework Core 随着时间的推移管理数据库的规范化
问题描述
我们刚刚开始摆脱遗留代码库,并开始在我们的大多数新软件中使用 .net 和 Entity Framework Core。
我们已将数据库从旧平台迁移到 SQL Server,但数据陈旧且规范化程度不佳。由于对遗留语言中(大型)现有代码库的潜在影响,我们无法一次全部进行规范化项目,因此我们正在将主键和外键定义添加到我们的数据库中,并重新生成我们的 Entity Framework Core 模型随着更多表对框架有效,从头开始。
我觉得我们这样做错过了 Entity Framework Core 的一些重要功能,但我对框架的了解还不够,无法确定它是什么。我知道生成的模型缺乏完整性(提示我的问题是因为带有 Identity 列的表没有将该列标记为ValueGeneratedOnAdd();
事实上该表根本没有出现在OnModelCreating
方法中)但我不知道这是否是一个问题数据库或我正在犯的另一个错误。
我的问题是:Entity Framework Core 中有哪些功能可以管理快速发展的数据库模型?我应该为自己做什么,我应该依靠Scaffold-DBContext
命令做什么?
解决方案
使用 EF Core,您需要的大部分事情将由 Scaffold-DBContext 完成。它现在唯一不能处理的是 DBQuery 集。您将不得不手动编写这些代码。除此之外,其他一切都由命令非常雄辩地处理。
就 ValueGeneratedOnAdd() 而言,我唯一一次看到这是一个问题是版本化表。如果您有一个版本化的表,Scaffold-DBContext 不会将其添加到这些字段中,您必须拥有这些字段,因此您必须手动将它们添加到您的代码中。
推荐阅读
- spring-boot - Spring Boot 无法检索 html 页面
- javascript - 距离我在 Javascript 中的位置最近的已知位置(纬度/经度)
- javascript - React.JS:以编程方式创建表头的问题
- java - 每天运行模型 8 小时,持续 3 天 (AnyLogic)
- javascript - Javascript innerHTML 将 PHP 脚本转换为 AJAX 响应上的注释
- python - 初始化我的 SQLite 数据库时找不到 __main__
- visual-studio - Windows 应用程序创建多个 ClickOnce 实例
- c# - 如何将 Json 转换为 C# 对象?
- python - 如何克隆存储库以便可以在 Python 中正常导入?
- flutter - 自定义形状问题颤振