EF Code First 创建非聚集主键索引

2023-11-24

我正在使用 EF 4.1 CodeFirst 创建数据库。看来 EF 正在使用聚集索引创建所有主键,这在一种情况下(可能是更多情况)对我们来说并不是最佳选择。 有没有办法告诉 EF 生成这个主键作为非聚集索引的表?

当然,我们可以在创建数据库后使用自定义脚本手动完成此操作,但是我们有很多外键指向该表,如果有更好、更直接的方法,这将是一个非常非最佳的解决方案在数据库创建期间已经相同。 任何帮助表示赞赏


不,没有办法控制 SQL 代码首先生成 - 它是代码优先,其当前的理念(实际上是糟糕的)是:你对数据库一无所知,而且你不用打扰。

更改此行为的唯一方法是编写自定义数据库初始值设定项,使用自定义数据库查询来搜索创建的索引,删除该索引并创建一个新索引。一些参考:

  • 如何停止EF4.1 Code-First为实体PK创建聚集索引
  • 添加索引的自定义初始值设定项
  • 更高级的初始化程序示例

初始化程序将使您的解决方案依赖于具体的数据库服务器产品。

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

EF Code First 创建非聚集主键索引 的相关文章

随机推荐

  • 使 GWT 应用程序可由搜索引擎抓取

    我想使用 使我的 GWT 应用程序可爬网的令牌 如下所述 http code google com web ajaxcrawling 在线有一个使用此功能的 GWT 示例应用程序 例如 http gwt google com samples
  • 连接 std::variant 和 std::variant 的类型

    有没有办法从两个现有变体类型声明第三个变体 其中包含两个变体类型的并集 include
  • UIDocument 和 NSFileWrapper 架构和性能

    我们最近将代码转换为使用 UIDocument 而不是直接操作文件系统上的文件 因此我们遇到了一些性能问题 我们想知道我们是否错误地使用了这个类 是否有其他人遇到这些问题 以及解决这些问题的常见方法是什么 Our app 我们有一个 鞋盒应
  • LINQ实际上编译成什么?

    背景 其背景是我最近在评论中与另一位显然知识渊博的用户就 LINQ 的编译方式进行了对话 我先 总结 一下 说LINQ被编译成for循环 虽然这是不正确的 但我对其他堆栈的理解 例如this one是 LINQ 查询被编译为内部有循环的 l
  • Backbone js,更新模型更改视图

    为什么我的视图没有更新
  • 为什么当类被密封时,带有 AutoMoqCustomization 的 Autofixture 不再抱怨缺少无参数构造函数?

    当我使用Moq直接模拟IBuilderFactory并实例化BuilderService我自己在单元测试中 我可以获得通过测试 验证Create 的方法IBuilderFactory被调用一次 但是 当我使用自动夹具 with AutoMo
  • 如何在文本上使用 TinyMCE 函数而不实际选择该文本?

    我有各种 div 我的页面上有 s 单击后会转换为 TinyMCE 编辑器部分 因此 用户只需双击 div 然后使用 TinyMCE 编辑其中的文本即可 我的问题是 是否可以在 div 没有实际选择里面的文本 我的意思是 我想实现以下用例
  • 在 jpa 中调用序列的下一个值

    我有一个映射为实体的类 以将其保存在数据库中 我有一个 id 字段作为主键 因此每次保留对象时 都会从序列 myClass pk seq 中检索 id 的值 代码如下所示 Entity Table name myObjects public
  • 从另一个项目修改 Windows 窗体控件

    我有一个控制lblDate在用户控制中MainScreen 我想在类的方法中修改它Date 这是在另一个项目中AoWLibrary 我无法引用它 因为 AoWLibrary 是第一个项目的依赖项 我尝试将 lblDate 设为静态 但编译器
  • 是否可以将 TypeTag 转换为 Manifest?

    我们的库使用 TypeTags 但现在我们需要与另一个需要清单的库进行交互 有没有简单的方法可以从 TypeTag 创建清单 如果你天真地尝试召唤一个Manifest when a TypeTag存在 编译器会给你一个解决方案的提示 imp
  • 如何在 Qt 中制作可展开/可折叠的部分小部件

    我想在 Qt 中创建一个具有以下功能的自定义小部件 它是一个容器 它可以填充任何 Qt 布局 它可以在任何 Qt 布局内 按钮允许垂直折叠 折叠内容 因此只有按钮可见 所有包含的布局都是不可见的 上一个按钮允许将其再次展开 展开到布局内容的
  • Mongo 对象 ID 不相等

    new Mongo ObjectID 18986769bd5eaaa42cb565b1 new Mongo ObjectID 18986769bd5eaaa42cb565b1 返回假 new Mongo ObjectID 18986769b
  • 使用ES6 Proxy和node.js出现非法调用错误

    我不明白为什么以下代码不起作用 var os new Proxy require os console log os cpus TypeError Illegal invocation whereas var os require os c
  • 如何在 python 中发送原始以太网帧?

    我需要在几天内完成一个项目 它是一个基本的客户端和服务器界面 问题是它必须是所有原始套接字 我创建它没有问题 我只是坚持发送数据包 首先我尝试将它绑定到一个接口 en1 但它一直给我一个错误nodename not known 当我将它绑定
  • 实施 PT_DENY_ATTACH 反盗版代码

    我一直在尝试实现此 wiki 中的以下反盗版代码 http theiphonewiki com wiki index php title Bugging Debuggers 但是 尽管严格遵循它 我的应用程序仍以 Program exite
  • 警告:文件大小():img.jpg 统计失败

    我正在尝试获取图像的文件大小 但我不断得到Warning filesize stat failed for img jpg 这就是我所做的 path FILES profile name path iconv UTF 8 ISO 8859
  • 使用UIImagePickerController获取图片——如何知道保存的是PNG还是JPEG?

    我有一个UIImagePickerController让用户从图像库中选择图像 并通过didFinishPickingMediaWithInfo method 我需要能够将生成的图像保存到磁盘 在应用程序的文档文件夹中 并稍后重新加载 问题
  • `strtod("3ex", &end)` 的结果应该是什么?那“sscanf”呢?

    在我的实验中这个表达 double d strtod 3ex end 初始化d with 3 0和地方end指针指向 e 输入字符串中的字符 这正是我所期望的 这 e 字符可能看起来像是指数部分的开头 但由于缺少实际指数值 6 4 4 2
  • flex 属性在 IE 中不起作用

    我一直无法确定为什么 Flexbox 在 IE 11 中不起作用 为了进行测试 我从 CodePen 获取了一个非常简单的 Flexbox 布局 并粘贴了以下信息 Chrome 按预期工作 IE11 失败 在 Chrome 上运行的布局成功
  • EF Code First 创建非聚集主键索引

    我正在使用 EF 4 1 CodeFirst 创建数据库 看来 EF 正在使用聚集索引创建所有主键 这在一种情况下 可能是更多情况 对我们来说并不是最佳选择 有没有办法告诉 EF 生成这个主键作为非聚集索引的表 当然 我们可以在创建数据库后