我正在使用EF 4.1 CodeFirst创建我的DB。 EF似乎正在使用聚类索引创建所有主要密钥,这在一种情况下对我们来说并不是最佳的(可能还有更多情况)。有没有办法告诉EF用主键作为非群集索引生成此表?

当然,我们可以在创建数据库之后使用自定义脚本手动进行操作,但是我们有很多外国键指向此表,如果有更好,更直接的方法,那将是一个不错的解决方案DB创建期间已经一样。任何帮助都赞赏

有帮助吗?

解决方案

没有首先生成SQL代码的方法,它是代码,其当前理念(实际上是不好的理念)是:您对数据库一无所知,并且不会打扰。

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

Initilizer将使您的解决方案取决于混凝土数据库服务器产品。

其他提示

是的,有一种方法可以指定不创建群集索引。如果使用代码迁移,则生成一个 *.cs文件以填充数据库。在此文件中,您可以指定除每个表的主键,如果需要使用群集索引创建。

  .PrimaryKey(t => t.MID, null, true)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top