Wie ändert man die PetaPoco-Klasse, um mit Composite-Schlüssel zu arbeiten, der aus nicht-numerischen Spalten besteht?

8

Ich habe eine Tabelle mit folgenden Spalten:

ContractorId ......... INT ............. IDENTITY
ContractorName ........ Varchar (50) ....... P.K
ContractorGrade ....... Varchar (3) ....... P.K

Die von PetaPoco T4 generierte Klasse sieht folgendermaßen aus:

%Vor%

Der Code zum Einfügen eines neuen Datensatzes lautet wie folgt:

%Vor%

In der zweiten Zeile des Klassencodes möchte ich wissen, wie man einen zusammengesetzten Schlüssel nennt, der (ContractorName + ContractorGrade) ist.

Zweitens fügt es keinen Datensatz ein, weil es eine ID-Spalte erwartet. Obwohl ContractorId IDENTITY ist, handelt es sich nicht um einen Primärschlüssel.

Es fügt keinen neuen Datensatz ein und gibt einen Fehler, weil 0 in die IDENTITY-Spalte eingefügt wird.

    
RKh 23.06.2012, 11:29
quelle

3 Antworten

7

Mein Zweig hier: Ссылка unterstützt zusammengesetzten Primärschlüssel, indem das Attribut PrimaryKey wie folgt angegeben wird:

%Vor%

Ich bin nicht sicher, wie es funktionieren wird, wenn Sie auch die Identitätsspalte dort haben wollen.

    
Schotime 27.06.2012, 08:26
quelle
2

Ich musste die folgenden Änderungen vornehmen, um IsNew ()

zu unterstützen %Vor%     
Cirem 17.01.2013 03:23
quelle
0

Ich kann sehen, dass es jetzt den CompositeKeySupport-Zweig gibt, also haben wir gute Chancen, dass dies unterstützt wird in der offiziellen Repo bald, was bedeutet, dass wir NuGet Updates und Zeug bekommen.

    
ulu 24.09.2016 11:48
quelle

Tags und Links