C# 从整个模型中禁用聚集索引

C# 从整个模型中禁用聚集索引,c#,entity-framework-core,C#,Entity Framework Core,我对所有数据库实体使用GUID,因此建议不要使用聚集索引。 如何拦截model builder以指示EF Core 2不在主键上创建任何聚集索引?目前没有此类设置/选项控件。因此,通常在这种情况下,您可以在OnModelCreating的末尾放置一个循环(以确保发现所有实体类型),该循环迭代实体类型并修改它们的PK关系(或在本例中为SqlServer)属性: foreach (var entityType in modelBuilder.Model.GetEntityTypes()) {

我对所有数据库实体使用GUID,因此建议不要使用聚集索引。
如何拦截model builder以指示EF Core 2不在主键上创建任何聚集索引?

目前没有此类设置/选项控件。因此,通常在这种情况下,您可以在
OnModelCreating
的末尾放置一个循环(以确保发现所有实体类型),该循环迭代实体类型并修改它们的PK关系(或在本例中为SqlServer)属性:

foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
    var key = entityType.FindPrimaryKey();
    key.SqlServer().IsClustered = false;
}

通常最好有一个聚集索引。它不必与主键相同。同意@Damien_the_unsiver,但我必须禁用所有主键的聚集索引,在此之后,我将添加一个“dumb”聚集索引列以帮助SQL Server。