Ich versuche, 1-n-Beziehung mit Entity Framework Code ersten Ansatz zu erstellen. Im Folgenden sind meine KlassenCode ersten Ansatz nicht Fremdschlüssel erstellen
public class User
{
[Key]
public int UserID { get; set; }
//public virtual Vote Vote { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Bio { get; set; }
[Required]
public string Education { get; set; }
[Required]
public string Experience { get; set; }
public string Password { get; set; }
}
und folgende ist meine zweite Klasse
public class Vote
{
[Required]
[Key]
public int VoteID { get; set; }
[ForeignKey("UserID")]
[Required]
public virtual User User { get; set; }
//public virtual int UserID { get; set; }
[Required]
public int VoteCount { get; set; }
[Required]
public int UserID { get; set; }
}
der Benutzer und die Abstimmung und 1-n-Beziehung, in meinem Fall, was ich meine ist, dass UserID Fremdschlüssel in Abstimmung Tisch sein sollte . Aber wenn ich die Schaffung db mit folgenden Befehlen getan
enable-migrations -ContextTypeName ProfileOne.PO -Force
Add-migration PO
update-database
Ich bin keine Fremdschlüssel oder Spaltennamen bekommen UserID
Jede mögliche Hilfe geschätzt wird, warum ich nicht in der Lage bin das Ergebnis zu erzielen.
Dies sollte eine 'Vote' Tabelle mit' UserID' erstellen. Aber die Beziehung ist 1-n (Benutzer hat viele Stimmen), nicht 1-1. Wenn 'UserID' nicht erstellt wurde, ist etwas anderes falsch im Code, den wir nicht sehen können. –
Ich würde an dieses Szenario glauben EF erwartet eine Eins-zu-Eins-Beziehung. Abhängig von der EF-Version kann das Attribut ignoriert werden, da die Konvention den PK als FK in einer solchen Beziehung verwendet. – DevilSuichiro
Dies sollte den Fremdschlüssel erstellen. Uns fehlt hier ein Teil des Puzzles. Einfach genug, um ein [MCVE] für diese Art von Problem zu erstellen. –