我正在使用 EF 4.1 CodeFirst 创建数据库。看来 EF 正在使用聚集索引创建所有主键,这在一种情况下(可能是更多情况)对我们来说并不是最佳选择。
有没有办法告诉 EF 生成这个主键作为非聚集索引的表?
当然,我们可以在创建数据库后使用自定义脚本手动完成此操作,但是我们有很多外键指向该表,如果有更好、更直接的方法,这将是一个非常非最佳的解决方案在数据库创建期间已经相同。
任何帮助表示赞赏
不,没有办法控制 SQL 代码首先生成 - 它是代码优先,其当前的理念(实际上是糟糕的)是:你对数据库一无所知,而且你不用打扰。
更改此行为的唯一方法是编写自定义数据库初始值设定项,使用自定义数据库查询来搜索创建的索引,删除该索引并创建一个新索引。一些参考:
- 如何停止EF4.1 Code-First为实体PK创建聚集索引
- 添加索引的自定义初始值设定项
- 更高级的初始化程序示例
初始化程序将使您的解决方案依赖于具体的数据库服务器产品。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)