如何阻止 EF Core 对所有外键建立索引

2024-04-15

正如问题中记录的那样实体框架索引所有外键列 https://stackoverflow.com/questions/29707363/entity-framework-indexing-all-foreign-key-columns,EF Core 似乎会自动为每个外键生成一个索引。这对我来说是一个合理的默认设置(我们不要在这里陷入舆论战......),但在某些情况下,这只是浪费空间并减慢插入和更新速度。根据具体情况如何预防?

我不想完全关闭它,因为它利大于弊;我不想为所有这些索引手动配置它do想。我只是想阻止它specific FKs.

相关问题:EF 文档中是否提到过这些索引是自动创建的?我在任何地方都找不到它,这可能就是为什么我找不到如何禁用它的原因?

有人肯定会问我为什么要这样做......所以为了节省时间,链接问题的OPer在评论中给出了一个很好的例子:

我们有一个People表和一个Addresses例如,表。这People.AddressIDFK 已被 EF 索引,但我只从People行并搜索Addresses记录;我从来没有找到一个Addresses行,然后搜索People.AddressID列为 匹配记录。


EF Core 有一个配置选项来替换其一项服务。

我发现将 IConventionSetBuilder 替换为自定义 IConventionSetBuilder 将是一种更简洁的方法。

https://giridharprakash.me/2020/02/12/entity-framework-core-override-conventions/ https://giridharprakash.me/2020/02/12/entity-framework-core-override-conventions/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何阻止 EF Core 对所有外键建立索引 的相关文章

  • 在方法中使用 IncludeMultiple

    我正在使用 Ladislav Mrnka 的扩展方法 public static IQueryable
  • EF 6 基于代码的迁移:向现有实体添加非空属性

    我想向现有表添加一个非空外键列 环境 EF 6 代码优先 基于代码的迁移 Code from Migration class for new entity Currency CreateTable dbo Currency c gt new
  • 实体框架中的嵌套查询

    我收到以下异常 不支持嵌套查询 操作 1 案例 操作 2 收集 通过这个查询 var Games context Games Select a gt new GameModel Members a Type 1 a UsersInGames
  • 无法加载文件或程序集“EntityFramework,版本=6.0.0.0”

    我究竟做错了什么 我该如何解决这个问题 我有一个包含多个项目的解决方案 它是一个 MVC NET 4 5 Web 应用程序 在调试模式下启动后调用其中一个项目时 出现此错误 导致此错误的项目具有以下参考 两个都是版本6 0 0 0 应用程序
  • 更改 IdentityServer4 实体框架表名称

    我正在尝试更改由 IdentityServer4 的 PersistedGrantDb 和 ConfigurationDb 创建的默认表名称 并让实体框架生成正确的 SQL 例如 而不是使用实体IdentityServer4 EntityF
  • 使用 List.Contains 方法为 LINQ 构建表达式树

    Problem 我正在重构一些LINQ查询我们的 Web 应用程序中的多个报告 并且我尝试将一些重复的查询谓词移至它们自己的中IQueryable扩展方法 以便我们可以将它们重新用于这些报告以及将来的报告 正如您可能推断的那样 我已经重构了
  • .NET 3.5 中的实体框架延迟加载

    由于服务器限制 我仅限于 Net 3 5 我使用 Linq to SQL 进行延迟加载 但后来切换到实体框架 L2E 在 3 5 中没有延迟加载 而 L2S 有 有没有办法以某种方式重新生成模板来实现这一目标 您必须在 EF 1 NET 3
  • 升级到 Visual Studio 16.3.0 后,dotnet ef 命令不再起作用

    这种情况首先发生在家里 所以我想这可能是我家里的台式电脑的问题 但现在我回到工作岗位 我尝试升级并得到了同样的结果 升级前截图 升级 Visual Studio 后的屏幕截图 我得到的错误是 无法执行 因为找不到指定的命令或文件 造成这种情
  • MetadataException:无法加载指定的元数据资源

    突然间我不断收到MetadataException在实例化我生成的ObjectContext班级 App Config 中的连接字符串看起来正确 自上次工作以来没有更改 我尝试从底层数据库重新生成一个新模型 edmx 文件 没有任何更改 有
  • 如何将存储过程中的值返回到 EF

    我试图通过 EF 调用存储过程并从存储过程中检索返回值 我用过this https stackoverflow com questions 6861737 executesqlcommand with output parameter an
  • Linq 在 .Substring() 上抛出异常

    我遇到了一种情况 我需要让 LINQ to Entities 查询根据字符串的长度返回一个子字符串 这是查询 var query from f in Context Files orderby f DateAdded descending
  • 使用经度和纬度查找给定距离内的所有附近客户

    我有一个包含客户经度和纬度的数据库 我有一个搜索表单 用户将在其中输入日志 纬度 距离下拉列表包含 50 英里 100 英里 当用户单击搜索时 我想编写一个 linq 查询从数据库中获取此距离半径内的所有客户 如何使用 C 和 linq 来
  • 为什么 DbSet 不是协变的?

    我有一个工厂函数来返回DbSet Of IItemType 实际的返回类型始终是一个实现IItemType 例如DbSet Of CategoryType 我认为泛型支持协方差 并且此方法可以正常工作 但是当我尝试运行代码时出现异常 无法转
  • 实体框架、dll、excel

    我用C 编写了Excel使用的dll 该dll是COM注册的 我与 Excel 的连接没有问题 该 dll 使用实体框架 5 从 SQL Server 数据库检索数据 如果我通过控制台应用程序运行该 dll 则该 dll 工作正常 但是当我
  • 如果我以后要应用ado实体框架,推荐的数据访问层设计模式是什么?

    我正在创建一个网站并使用 Linq to SQl 作为数据访问层 并且我愿意使该网站可以在 linq to sql 和 ado 实体框架上工作 而无需更改其他层中的许多内容 业务逻辑层或 UI层 实现这一目标的推荐模式是什么 你能简单解释一
  • MVC5 实体框架的问题

    我在我的 Web 应用程序中使用 Visual Studio 2013 中的 ASP NET MVC5 Entity Framework 6 我正在尝试我的模型工作 但由于某种原因而出现错误 我已经尝试过 Fluent API 和它自己的模
  • 每个数据库多个/单个 *.edmx 文件

    我有一个通过 ADO net 数据服务与数据库交互的项目 数据库很大 近 150 个具有依赖关系的表 该项目几年前开始 当时使用的是数据集 现在我们正在转向实体模型关系 由于我们添加了更多需要使用的表 该模型正在不断增长 这是管理这一切的正
  • 如何将存储过程结果映射到自定义类?

    我在用entity framework 5我已经添加了两个存储过程到我的 edmx model 第一个存储过程返回一个字符串 如果我在 Visual Studio 中打开模型浏览器 我可以更改Returns a Collection Of节
  • 实体框架服务层更新 POCO

    我正在使用Service Layer gt Repository gt Entity Framework Code First w POCO objects方法 我在更新实体方面遇到了困难 我正在使用 AutoMapper 将域对象映射到视
  • 与 Entity Framework Core 2.0 的一对零关系

    我正在使用 C 和 NET Framework 4 7 将 Entity Framework 6 1 3 Code First 库迁移到 Entity Framework Core 我一直在用 Google 搜索 Entity Framew

随机推荐

  • Swagger - 时间戳奇怪的表示

    我有 Spring Boot 控制器 为了方便 API 参考 我使用了 Swagger 关于问题timestamp 为什么在生成的文档示例中看起来像 timestamp date 0 day 0 hours 0 minutes 0 mont
  • UWP 网格填充父窗口

    我们正在进行一个学校项目 但陷入了死胡同 我们正在努力使grid填充整个父窗口 但我们根本无法这样做 This is what the designer shows and how we want it to look And this i
  • 如何从 Twitter Bootstrap 和 Bloodhound 建议中获取 id 和 value?

    选择建议时如何从 typeahead js 获取 id 和 value 我有一个 json 如下 id 1 name paul id 2 name jim id 3 name tom id 4 name medor id 5 name ja
  • Maven jdepend 循环构建失败

    当包循环存在时 有没有办法使用 maven 中的 jdepend 插件来使构建失败 我知道你可以用 ant 很容易地做到这一点 但我还没有弄清楚如何用 Maven 做到这一点 谢谢 杰夫 根据已接受的答案 我改进了性能和日志输出 并将其发布
  • 为什么 CompareTo 这么短地实现?

    考虑以下代码 namespace ConsoleApplication1 class Program static void Main string args Console WriteLine 100 CompareTo 200 prin
  • 如何获取启动进程的命令行

    从 Java 中 是否可以获得包含启动应用程序的所有参数的完整命令行 System getEnv and System getProperties 似乎不包含这些值 其中一些可以从 RuntimeMXBean 获得 通过调用获得Manage
  • Jenkins 管道到 Excel 电子表格

    我有一个每天运行 sql 计数的管道 作为回归测试的一部分 我希望能够将每个构建的结果导出到一个 excel 文档中 在其中可以存储和比较结果 这可能吗 提前致谢 None
  • 解析 JSX 文件以提取 Import 语句的属性

    有一个 jsx 文件 其中包含内容
  • 使用 T-SQL 通过游标导航存储过程的结果

    由于遗留的报告生成系统 我需要使用游标来遍历存储过程的结果集 系统通过打印结果集中每一行的数据来生成报告输出 重构报告系统远远超出了这个问题的范围 据我所知 DECLARE CURSOR 语法要求其源是 SELECT 子句 但是 我需要使用
  • 当前缓冲区的议程视图

    编辑 解决方案很简单 但对于任何可以解释为什么我的方法不起作用的人来说都是 加分 原点 我想要一个 org mode custom command 来显示仅从当前缓冲区创建的议程 以下代码片段显示了我想要的视图类型 setq org age
  • 在 mysql 中使用 TCP/IP 上的 Unix 套接字有什么合法的理由吗?

    我试图弄清楚为什么 mysql 默认使用 Unix 套接字 tmp mysql sock 而不是普通的 TCP IP 套接字 这看起来不像是一个安全问题 因为你只能在 127 0 0 1 上监听 这应该同样安全 套接字文件是世界上可写的 所
  • 如何使用 C# 在 Windows 上存储和检索凭据

    我构建了一个要在 Windows 10 上运行的 C 程序 我想只需按一个按钮即可从该程序发送电子邮件 计算结果 我把from 电子邮件地址和subject 等 但我不想在程序中的任何地方放置明文密码 并且我不希望用户每次发送邮件时都必须输
  • 如何通过WMI确定操作系统平台?

    我试图弄清楚 WMI 中是否有一个位置可以返回可在 所有 版本的 Windows 上工作的操作系统架构 即 32 位或 64 位 当我发现以下内容时 我以为我已经弄清楚了我的Win2k8系统 Win32 OperatingSystem OS
  • 依赖属性如何告诉要应用的对象?

    我对这个概念完全陌生 所以我可能会问非常基本的问题 使用以下代码注册依赖属性 public static DependencyProperty Register string name Type propertyType Type owne
  • 输出以秒为单位。在php中转换为hh:mm:ss格式

    我的输出格式为 290 52262423327 秒 如何将其更改为 00 04 51 我想以秒为单位并以 HH MM SS 格式显示相同的输出 所以如果是秒 我只想显示 290 52 秒 小数点后只有两个整数 我怎样才能做到这一点 我正在
  • Mono .Net 支持异步等待吗?

    我想知道 Linux 上的 Mono 是否支持使用 async wait 关键字功能编写自托管 WebApi 项目 I found this on the Mono website on the compability page 然后有一些
  • 为什么“删除未使用的资源”在 Android Studio 中找不到任何内容?

    你可能知道 Remove Unused Resources最近已添加到 Android Studio Android Studio 2 0 预览版 5 http tools android com recent androidstudio2
  • 如何启用鼠标水平滚动?

    我无法确定如何使用鼠标滚轮水平滚动 垂直滚动可以自动很好地工作 但我需要水平滚动我的内容 我的代码如下所示
  • 为什么Conda激活环境后无法调用正确的Python版本?

    我在Linux下有以下conda环境 conda info e conda environments py33 u21 coyotito anaconda envs py33 root u21 coyotito anaconda And p
  • 如何阻止 EF Core 对所有外键建立索引

    正如问题中记录的那样实体框架索引所有外键列 https stackoverflow com questions 29707363 entity framework indexing all foreign key columns EF Co