【发布时间】:2021-12-31 11:01:08
【问题描述】:
我正在使用 EF Core(如果重要,则为 3.1)和 DB 优先方法。
前段时间我使用 Scaffold-DbContext 命令生成了模型,在生成的上下文文件中有很多索引定义,例如:
entity.HasIndex(e => new { e.ItemType, e.ItemID });
由于我们最近进行了一些索引更新,我想知道 - 我真的需要更新模型中所有相关的索引定义吗?我什至需要它们吗?它们是否对 EF 的性能或代码的运行方式有任何影响,还是我可以删除它们而不担心在实际数据库中进行的任何更新?
提前致谢
【问题讨论】:
-
你可以忽略它们。它们不在运行时使用。
-
你确定@ErikEJ 吗? EF是否有可能根据是否对某些内容进行索引来创建不同的搜索(我认为如果以这种方式指定索引,则查找COLA,COLB的搜索会将搜索更改为COLB,COLA)。
-
是的,我很确定
-
@dorBS 你的意思是你已经直接在你的数据库表中创建了一些索引并且你担心你的 dbcontext 和数据库之间的差异吗?
-
@M.Mohabbati 完全正确
标签: c# entity-framework entity-framework-core ef-core-3.1