SQL Server-Tabelle:
SomeId PK varchar(50) not null
OtherId PK int not null
Wie soll ich dies zuerst in EF 6-Code abbilden?
public class MyTable
{
[Key]
public string SomeId { get; set; }
[Key]
public int OtherId { get; set; }
}
Ich habe einige Beispiele gesehen, in denen Sie die Reihenfolge für jede Spalte festlegen müssen. Ist das erforderlich?
Gibt es irgendwo offizielle Unterlagen dazu?
c#
sql-server
entity-framework
entity-framework-6
loyalflow
quelle
quelle
SomeId
einstring
oder einint
?Antworten:
Sie müssen auf jeden Fall die Spaltenreihenfolge eingeben, sonst wie soll SQL Server wissen, welche zuerst ausgeführt wird? Folgendes müssten Sie in Ihrem Code tun:
Sie können sich auch diese SO-Frage ansehen . Wenn Sie eine offizielle Dokumentation wünschen, würde ich empfehlen, die offizielle EF-Website zu besuchen . Hoffe das hilft.
EDIT: Ich habe gerade einen Blog-Beitrag von Julie Lerman mit Links zu allen Arten von EF 6-Güte gefunden. Sie können alles , was Sie brauchen , finden Sie hier .
quelle
otherwise how is SQL Server supposed to know which one goes first?
- warum nicht auf die gleiche Weise die Reihenfolge für jede zweite Spalte kennen?Für die Zuordnung des zusammengesetzten Primärschlüssels mithilfe des Entity-Frameworks können zwei Ansätze verwendet werden.
1) Durch Überschreiben der OnModelCreating () -Methode
Zum Beispiel: Ich habe die Modellklasse VehicleFeature wie unten gezeigt.
Der Code in meinem DBContext wäre wie folgt:
2) Durch Datenanmerkungen.
Weitere Informationen finden Sie unter den folgenden Links.
1) https://msdn.microsoft.com/en-us/library/jj591617(v=vs.113).aspx
2) Wie füge ich mit EF 6 Fluent Api einen zusammengesetzten eindeutigen Schlüssel hinzu?
quelle
Über die Konfiguration können Sie Folgendes tun:
dann im Kontext config
quelle
Ich dachte, ich würde diese Frage ergänzen, da es das beste Google-Suchergebnis ist.
Wie in den Kommentaren erwähnt, gibt es in EF Core keine Unterstützung für die Verwendung von Anmerkungen (Schlüsselattribut) und dies muss fließend erfolgen.
Da ich an einer großen Migration von EF6 zu EF Core arbeitete, war dies unappetitlich. Daher habe ich versucht, sie mithilfe von Reflection zu hacken, um nach dem Schlüsselattribut zu suchen und es dann während OnModelCreating anzuwenden
Ich habe dies nicht in allen Situationen vollständig getestet, aber es funktioniert in meinen Basistests. Hoffe das hilft jemandem
quelle