Wie rüste ich DbContext mit mehreren DbSet-Eigenschaftsnamen in Entity Framework Core?

9

Ich verwende den Befehl Scaffold-DbContext in Package Manager Console , um Kontext und Entitäten für eine vorhandene SQL Server-Datenbank zu erstellen und neu zu erstellen:

%Vor%

Es funktioniert perfekt außer einer Sache: DbSet haben Eigenschaftsnamen in Singularform:

%Vor%

Ich bevorzuge diese Namen im Plural ( Requests usw.). Zusätzlich zur Websuche habe ich die Befehlssyntax überprüft:

%Vor%

Und nichts gefunden, um dieses Verhalten zu ändern. Hier ist meine packages.config :

%Vor%

Wie man DbSet Namen beim Gerüstbau pluraliert?

UPDATE 2017-04: DB Die erste Gerüstpluralisierung ist jetzt in Entity Framework Core 1.1 möglich. Lesen Sie meine Antwort unten für Details.

    
Ilya Chumakov 31.12.2015, 08:22
quelle

2 Antworten

1

Die Pluralisierung wird in EF7 ab RC1 nicht unterstützt. Diese und andere Einschränkungen des EF7-Gerüsts werden hier verfolgt: Ссылка

    
natemcmaster 31.12.2015, 19:03
quelle
0

Die Pluralisierung ist in EF Core 1.1 möglich. Als Rowan Miller beschrieben in seinem Blog , Sie Sie müssen den Inflector installieren und IDesignTimeServices implementieren, um die Pluralisierung beim Gerüstbau zu steuern. Beachten Sie jedoch Folgendes:

  

Wir stellen diese Dienste in * .interne Namespaces und behalten uns das Recht vor   um die APIs zu jedem Zeitpunkt zu brechen.

Aus diesem Grund wird ein vollständiges Codebeispiel hier nicht kopiert. Diese Antwort wird aus dem gleichen Grund nicht akzeptiert - ich warte lieber, bis wir eine stabile API bekommen.

Ein weiteres Problem, das Sie beachten sollten - diese Lösung ist vom Anbieter abhängig. Es funktioniert gut mit SQL Server (ich habe es getestet). Ein anderer DBMS-Anbieter unterstützt diese API möglicherweise noch nicht. Beispiel: Npgsql.EntityFrameworkCore.PostgreSQL 1.1.0 schlägt auf dem Gerüst fehl, wenn die benutzerdefinierte IDesignTimeServices verwendet wird.

    
Ilya Chumakov 10.04.2017 10:32
quelle