2017-12-27 9 views
1

Ich verwende GUID für alle meine Datenbank-Entities, daher wird empfohlen, nicht mit Clustered-Index zu arbeiten. Wie kann ich den Model Builder abfangen, um EF Core 2 anzuweisen, keinen Clustered-Index für Primärschlüssel zu erstellen?Clustered-Index vom gesamten Modell deaktivieren

+0

Es ist normalerweise am besten, einen Clustered-Index zu haben. Es muss nicht mit dem Primärschlüssel identisch sein. –

+0

Vereinbaren Sie @Damien_The_Unbeliever, aber ich muss den Clustered-Index für alle Primärschlüssel deaktivieren, danach werde ich eine "dumme" Clustered-Index-Spalte hinzufügen, nur um SQL Server zu helfen. – Alexandre

Antwort

1

Gegenwärtig gibt es keine solche Einstellung/Optionssteuerung. So wie in solchen Fällen üblich, können Sie eine Schlaufe am Ende der OnModelCreating setzen können (um sicherzustellen, dass alle Objekttypen erkannt werden), welche die Entitätstypen iteriert und ändert ihre PK relationalen (oder in diesem Fall SqlServer) Attribute:

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