为什么主键顺序很重要?

2024-03-03

我最近在 EntityFramework 项目中设置了一个类,它将其几个成员指定为组合键。

但是,当需要从中创建数据库时,它给出了错误

无法确定类型“NNNNN”的复合主键排序。使用 ColumnAttribute 或 HasKey 方法指定复合主键的顺序。

我知道如何解决这个问题,但我只是想知道为什么它关心顺序。复合主键不是只是一组用于记录记录的列,而无需任何特定的排序吗?


这很重要,因为主键的顺序在数据库中很重要。由于主键(通常)是聚集的,并且总是索引,因此无论键是按名字、姓氏、SSN 还是 SSN、姓氏、名字排序,都会产生巨大的差异。如果我在查询表时只有 SSN,并且 PK 是唯一的索引,那么我将看到后者的出色性能,以及前者的全表扫描。

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

为什么主键顺序很重要? 的相关文章

  • 消息 203,级别 16,状态 2,不是有效标识符

    我收到以下错误 消息 203 级别 16 状态 2 过程 getQuestion 第 18 行名称 select top 1 from tlb Question inner join tlb options on tlb options q
  • Oracle OLE DB 提供程序未在 SSIS 中列出

    我在 SSIS 和 VS2015 CM 方面遇到问题 我有一个包需要连接 Oracle 来获取一些数据 我安装了适用于 Win64 的 ODAC 和 Oracle 客户端 但看不到提供程序列表中列出的 OLE DB 的 Oracle 提供程
  • 如何使用自定义 DbFunction 将字符串转换为小数

    我有一个将小数 和其他类型 保存为字符串的表 我想在数据库上下文上编写一个 Linq 查询 该查询将转换为数据库转换而不是本地转换 出于性能原因 This 非工作的example 从概念上讲是我想要实现的目标 using var conte
  • SQL存储过程执行时间差异

    我在 win form 应用程序中遇到奇怪的问题 我正在调用一个存储过程 并且执行大约需要 6 秒 此存储过程接受多个参数 包括一个输出参数 从应用程序级别我使用 Dim dt1 DateTime Now cmd ExecuteNonQue
  • ADO.NET SQLServer:如何防止关闭的连接持有S-DB锁?

    i Dispose http msdn microsoft com en us library system data sqlclient sqlconnection close aspx一个 SqlConnection 对象 但是当然它并
  • 如何使用 SQL 查询创建逗号分隔的列表?

    我有 3 个表 名为 应用程序 ID 名称 资源 id 名称 应用程序资源 id app id resource id 我想在 GUI 上显示所有资源名称的表格 在每一行的一个单元格中 我想列出该资源的所有应用程序 以逗号分隔 所以问题是
  • 替换字符串中的多个字符,而不使用任何嵌套替换函数

    我的表中存储了一个方程 我一次获取一个方程 并希望将所有运算符替换为任何其他字符 输入字符串 N 100 6858 6858 N 100 0 2 N 35 运算符或模式 替换字符 输出字符串 N 100 6858 6858 N 100 0
  • 仅选择 Varchar 列中的数字[重复]

    这个问题在这里已经有答案了 在 SQL Server 2008 R2 中 我在 varchar 12 列中有一些数据 它看起来像这样 Data 1234 1765 34566 123 SDRMH HJG434 我想从所有包含 的行中删除 并
  • 重建数据库中的所有索引

    我有一个非常大的 SQL Server 2008 R2 数据库 1 5TB 并将在同一个表中的列之间复制一些数据 我被告知该架构有大量索引 并且想知道是否有默认查询或脚本可以重建所有索引 是否也被建议同时更新统计数据 30 个表中的每一个都
  • 一张表中按最大日期过滤重复行的 SQL 查询

    我有一个 SQL 数据库 persons 它具有基于 IDNum 列的重复条目 我需要查询条目并仅根据最新创建日期显示行或重复条目 这是查询 SELECT IDNum PersonPGUID CreatedDateTime FirstNam
  • 作为 UDF 结果的列上的 Where 子句

    我有一个用户定义的函数 例如myUDF a b 返回一个整数 我试图确保该函数仅被调用一次 并且其结果可以用作WHERE clause SELECT col1 col2 col3 myUDF col1 col2 AS X From myTa
  • SQL Server 每年的第一个星期一

    如何使用 T SQL 查找 一年中的第一个星期一 这是 ngruson 发布的链接中的示例 http sqlbump blogspot nl 2010 01 first monday of year html http sqlbump bl
  • SQL Server - 仅执行存储过程角色

    如何创建只能运行的自定义 SQL Server 数据库服务器角色SELECT查询和存储过程 这意味着 该角色的用户不允许执行自定义查询 但可以运行具有 CRUD 和 SysAdmin 语句的存储过程 UPDATES DELETES ALTE
  • <表值函数> 不是可识别的内置函数名称

    我收到此错误 消息 195 第 15 级 状态 10 第 1 行 fnParseName 不是可识别的内置函数名称 对于这个查询 SELECT fnParseName DOCTORFIRSTNAME DOCTORLASTNAME FROM
  • 在实体框架 6 中使用 SqlQuery>

    我正在尝试在 EF 6 中执行 SQL 查询 select查询返回两个字符串列 例如select a b 并且可以有任意数量的行 我想将结果映射到字典 但我无法摆脱以下错误 错误 1 无法将类型 System Data Entity Inf
  • 从一张表更新并插入另一张表

    我有两张桌子 table1 ID 代码 姓名 table2 ID 代码 姓名 具有相同的列 我想将数据从 table1 插入到 table2 或更新列 如果 table2 中存在 table1 ID table2 ID 执行此操作的简单方法
  • 实体框架、LinqToSQL 和 sql 注入

    完全使用 Linq To SQL 或实体框架的项目是否有可能遭受 SQL 注入 我认为这可能不是因为 ORM 生成的 SQL 应该是免 SQL 注入的 但我不确定 当您按预期使用这些框架时 即直接使用实体 表 那么就不会 所有字符串比较 即
  • 如何安全地使用保留的 SQL 名称?

    我正在使用 Cakephp 3 使用 sqlserver 作为数据源服务器 我确信我的数据库连接没有问题 因为 home ctp 提示我已连接到我的数据库 并且我还使用迁移插件来创建我的表 似乎使用它没有问题这些工具 但是在我烘焙 MVC
  • SSRS ReportViewer 与 XML 嵌入数据源相关的问题

    我有 C WPF 应用程序 我想在 ReportViewer 控件中显示 SSRS 报告 本地报告文件中嵌入了 XML 数据源 从 SQL Server Business Intelligence Development Studio 运行
  • 当Model和ViewModel一模一样的时候怎么办?

    我想知道什么是最佳实践 我被告知要始终创建 ViewModel 并且永远不要使用核心模型类将数据传递到视图 这就说得通了 让我把事情分开 但什么是Model 和ViewModel一模一样 我应该重新创建另一个类还是只是使用它 我觉得我应该重

随机推荐

  • HRESULT:0x80131040:找到的程序集的清单定义与程序集引用不匹配

    找到的程序集的清单定义与程序集引用不匹配 通过 ncover 运行 nunit 时得到此信息 任何想法 这是程序集之间的不匹配 从程序集引用的 DLL 没有预期的方法签名 清理解决方案 重建所有内容 然后重试 另外 如果这是对 GAC 中某
  • Magento API 的创建发票方法无法正常工作

    我正在尝试使用 XMLRPC 在 Android 应用程序中使用 Magento API 创建销售订单发票 我正在使用方法 sales order invoice create 用于创建发票 此方法在给定数量的响应中为我提供发票 ID 如中
  • 如何通过 API Laravel 处理用户注册

    我一直在阅读和观看一些有关 Laravel API 开发的教程 尽管我使用过一些 Laravel 但我对 API 开发完全是新手 从我读过的所有教程来看 它们处理的是 登录 获取一些数据 更新信息 删除信息 甚至将一些信息插入数据库 我的问
  • C# .NET 中的 Web 响应最多只能运行几次

    我正在使用 twitter api 开发一个应用程序 其中涉及编写一个方法来检查用户是否存在 这是我的代码 public static bool checkUserExists string user string URL https tw
  • 如何在 Struts 2 中向我的所有视图公开一个对象?

    我有一个使用 Struts 2 和 Freemarker 模板以及 Spring 4 的 Web 应用程序 我有一些配置字符串存储在 properties我需要在每个页面上呈现的文件 例如 我们的 CDN 路径 其中包含版本字符串 现在这些
  • OSError:libgdal.dylib:无法打开文件

    问题是 Docker 无法正常运行 因为OSError opt homebrew Cellar gdal 3 3 0 2 lib libgdal dylib cannot open shared object file No such fi
  • 使用 Pyx 绘制大括号

    如何使用 Pyx 在任意两个点之间绘制一条 支撑 线 它看起来像这样 大括号示例http tof canardpc com view d16770a8 0fc6 4e9d b43c a11eaa09304d http tof canardp
  • 如何编写一个以两个矩阵 A 和 B 作为输入并输出乘积矩阵 A*B 的函数?

    如何编写一个以两个矩阵 A 和 B 作为输入并输出乘积矩阵 A B 的函数 使用 MATLAB 带有循环和条件 我的尝试 function prodAB MultiplicoMatrices A B prod 0 prodAB for i
  • 发生特定情况时如何停止 Kotlin 流程

    如果代码中发生某些情况 我想取消 kotlin 流程 假设我有一个方法如下 fun test Flow
  • 自定义设备控制器不工作

    我有两个模型居民和用户 它们都包含 roll number 属性 我现在已经在驻留模型中输入了数据 当用户注册哪个是 Devise 资源时 它会检查驻留模型中是否存在相同的 roll number 然后就可以注册用户了 所以基本上我向 De
  • 替换JS中某个字符的所有实例?

    我正在尝试创建一个简单的函数来替换 JS 中字符串中某个字符的所有实例 在这种情况下 我想替换所有a s with o s 我很确定代码是正确的 但输出仍然是原始字符串 function replaceLetter string for v
  • mongorestore 随机崩溃(致命错误)

    我使用的是 macOS 10 12 mongod version db version v3 2 8 git version ed70e33130c977bda0024c125b56d159573dbaf0 OpenSSL version
  • 如何在源代码中查找搜索词

    我正在寻找一种在项目的 C C 代码中搜索给定术语的方法 同时忽略注释和字符串中出现的任何情况 由于代码库相当大 我正在寻找一种方法自动地识别与我的搜索词匹配的代码行 因为它们需要手动检查 如果可能的话 我想在我的 Linux 系统上执行搜
  • 绘制相同值时显示更大的点

    当我绘制以下示例时 Participant lt c 1 12 AnswersDay1 lt c 9 3 9 13 7 12 10 7 9 0 12 11 Day1Group lt c 0 1 0 1 0 1 0 1 0 1 0 1 Pus
  • 傅立叶空间中的滤波器的行为与预期不同

    这是我提出的已回答问题的后续内容 可以找到here https stackoverflow com questions 54022376 inverse fft returns negative values when it should
  • RDP(VM) 最小化时自动化脚本失败

    我一直面临着在其中一台虚拟机上自动执行脚本的问题 我已经实现了保存文档功能的自动化 该功能最好是 Windows 设计的 UI 我尝试过使用各种技术 工具 如 AutoIT Python Sikuli 但如果虚拟机最小化 脚本就会停止 如果
  • 使用 Savon 在 Ruby on Rails 中进行 SOAP 调用在信封和主要操作方面变得很奇怪

    在使用 Savon rb 的 Rails 项目中 我尝试进行非常复杂的 SOAP 调用 至少复杂到 Savon 构建者太麻烦了 所以我决定直接操作 xml 首先我启动客户端 client Savon client endpoint gt h
  • 有 XHTML 5 验证器吗?

    是否有专门针对 XHTML 5 的验证器 即 HTML 5 的 XML 序列化 这W3C 验证器 http validator w3 org 支持文档类型 HTML 5 experimental which treats as valid
  • 从第二次“应用内购买”开始在 Android 中抛出异常

    我正在尝试包含在应用程序购买中 并且已成功显示可用的 SKU 现在我想进行虚假购买 所以我使用了 appId android test purchased 第一次它工作完美 但从接下来它抛出异常 如下所示 尝试在空对象引用上调用虚拟方法 a
  • 为什么主键顺序很重要?

    我最近在 EntityFramework 项目中设置了一个类 它将其几个成员指定为组合键 但是 当需要从中创建数据库时 它给出了错误 无法确定类型 NNNNN 的复合主键排序 使用 ColumnAttribute 或 HasKey 方法指定