ich ein Modell von Arbeit, die ich versuche, eine optionale Job-Umfrage hinzuzufügen:Entity Framework 0: 1-Beziehung wird nicht abgebildet wird
public class Job
{
[Key]
public int JobID { get; set; }
// Leaving out all the other fields...
public virtual JobSurvey JobSurvey { get; set; }
}
Der Job Umfrage Modell sieht wie folgt aus:
public class JobSurvey
{
[Key]
public int JobSurveyId { get; set; }
public string CustomerEmail { get; set; }
[Index]
[Column(TypeName = "Date")]
public DateTime? SentDate { get; set; }
[Column(TypeName = "Date")]
public DateTime? ReturnedDate { get; set; }
public int? RatingValue { get; set; }
public virtual Job Job { get; set; }
}
In meinem Zusammenhang habe ich folgendes hinzugefügt:
modelBuilder.Entity<Job>()
.HasOptional(s => s.JobSurvey)
.WithRequired(j => j.Job);
Als ich lief Add-Migration, das Skript die folgenden erstellt:
Mein Problem ist, dass die Tabelle, die erstellt wurde, keine Fremdschlüsseleigenschaft hat, um zu der verwandten Entität wechseln zu können.
In meinem SQL gibt es keine JobSurveyId-Eigenschaft, mit der ich die Umfrage für einen Job abrufen kann, und meine JobSurvey-Tabelle hat keine Navigationseigenschaft, die zum Job zurückführt. So kann ich JobSurveys erstellen, aber sie sind nicht verknüpft.
Was habe ich falsch gemacht?
bearbeiten
Ich habe versucht JobSurvey wie folgt zu ändern:
[Key]
[ForeignKey("Job")]
public int JobSurveyId { get; set; }
public int JobId { get; set; }
kein Erfolg
Edit 2
auch Haben Sie versucht das Hinzufügen [Erforderlich], um die Navigationseigenschaft, aber add-migration nimmt dies nicht als ac auf hange, die aktualisiert werden muss:
[Required]
public virtual Job Job { get; set; }
Ich glaube, Sie haben nicht die korrekte Schreibweise Ihrer 'Job' Klasse zeigte. Sie initialisieren den Kontext im Modell? deklarierte proeprty im Konstruktor? –
Nein, ich initialisiere die jobsurvey-Eigenschaft im Job-Konstruktor nicht (da JobSurvey null sein kann) – Evonet
korrigiere bitte deine 'Job'-Klasse in der Frage –