我正在使用现有系统并将其更新为 .NET Core、Web API 和 EF Core。
现有系统有 2 个表:
- 父表:id、name等。
- 子表:Id、ParentId、name等。
虽然ParentId
存在于子表中,但没有外键引用,但我希望在查询父表时能够使用包含。我已要求不要添加 FK 作为删除它们将 -ve 值放入parentId
列的一部分。通过这种方式,他们可以将其带回来,并以这种方式构建遗留系统。
现在,在 db-first 迁移中,如何在没有 fk 的情况下指定导航属性,以便我的 EF Core 执行关系;或者至少将它们一起归还。添加可为空的外键不是一个选项,因为当添加 -ve 值时它会破坏系统。
我确实建议完全清理数据库并摆脱 -ve 值,但这涉及大量测试并且没有可交付成果。长话短说如何在数据库第一次迁移中添加没有外键的导航属性?
我尝试在模型中添加集合和虚拟条目,但迁移后它被覆盖了。我已经按照本文档在模型构建器上使用 HasMany 添加了这个 - https://docs.microsoft.com/en-us/ef/core/modeling/relationships?tabs=fluent-api%2Cfluent-api-simple-key% 2C简单键
但是脚手架覆盖了我的导航属性