实体框架多对多聚类与非聚集索引

时间:2010-08-25 16:08:46

标签: entity-framework azure-sql-database

我设计了一个实体数据模型,它有两个实体,它们之间存在多对多的关系。当我自动生成SQL代码以生成此模型的数据库时,它生成了一个表(两列)来跟踪这种多对多关联。但是,此表在两列上都有一个PRIMARY KEY NONCLUSTERED。

由于我希望这可以在不喜欢只有非聚簇索引的表的SQL Azure上工作,我想知道是否有一种很好的方法来告诉代码生成生成聚簇索引?谢谢!

1 个答案:

答案 0 :(得分:3)

我有另一个名为Model.indexes.sql的文件,其中包含用于创建超出EF生成的基本索引的脚本的脚本,例如用于性能优化的索引。

虽然这并不理想,但我在其中添加了一个索引drop并为每个EF关联创建,以将非Clustered索引转换为索引索引:

ALTER TABLE [dbo]。[MyAssociation] DROP CONSTRAINT [PK_MyAssociation] 走 ALTER TABLE [dbo]。[MyAssociation] 添加约束[PK_MyAssociation]     PRIMARY KEY CLUSTERED([Table1_Id],[Table2_Id] ASC); GO

这是在每次“从模型中生成数据库...”之后执行的。我希望有一个更优雅的解决方案。