Die Eigenschaft muss eine gültige entity-Typ und die Immobilie sollte eine nicht-abstrakte getter und setter. Entity Framework

Ich habe ein Problem in Bezug auf die Erstellung einer Datenbank von der ersten code in entity framework. Ich habe die folgenden drei Klassen 1 Person, 2 PersonAddress, 3 PersonEmploymentHistory wie unten gezeigt.

namespace DataAccess.Models
{
[Table("Profile")]
public class Person
{
    [Key]
    public int UserId { get; set; }

    [Required(ErrorMessage = "Firstname is required")]
    public string PersonFirstName { get; set; }

    [Required(ErrorMessage = "Surname is required")]
    public string PersonSurname { get; set; }

    [Required(ErrorMessage = "Email is required")]
    [DataType(DataType.EmailAddress)]
    public string PersonEmail { get; set; }
    public int Age { get; set; }

    [Required(ErrorMessage = "Contact Number required")]
    public Int64 PersonNumber { get; set; }

    public bool IsActive { get; set; }

    [ForeignKey("AddressDetails")]
    public int AddressId { get; set; }
    public virtual PersonAddress AddressDetails { get; set; }

    [ForeignKey("EmploymentHistory")]
    public int EmployerId { get; set; }
    public virtual PersonEmploymentHistory EmploymentHistory { get; set; }

}
}

PersonAddress Klasse

namespace DataAccess.Models
{
[Table("AddressDetails")]
public class PersonAddress
{
    [Key]
    public int AddressId { get; set; }

    [ForeignKey("UserId")]
    public int UserId { get; set; }

    [Required(ErrorMessage = "Address Line 1 required")]
    public string AddressLine1 { get; set; }

    [Required(ErrorMessage = "Address Line 2 required")]
    public string AddressLine2 { get; set; }

    [Required(ErrorMessage = "Postcode required")]
    [DataType(DataType.PostalCode)]
    public string PostCode { get; set; }
}
}

PersonEmploymentHistory

namespace DataAccess.Models
{
[Table("EmploymentHistory")]
public class PersonEmploymentHistory
{
    [Key]
    public int EmployerId { get; set; }
    public string EmployerName { get; set; }
    public decimal EmployeeSalary { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
    public string ReasonForLeaving { get; set; }

    [ForeignKey("UserId")]
    public int UserId { get; set; }
}
}

Und das ist mein Kontext-Klasse

 public class Context : DbContext
{
    public Context()
        : base("DefaultConnection")
    {
        Database.SetInitializer<Context>(new CreateDatabaseIfNotExists<Context>());
    }

    public DbSet<Person> Person { get; set; }
    public DbSet<PersonAddress> PersonAddress { get; set; }
    public DbSet<PersonEmploymentHistory> PersonEmployment { get; set; }

}

Nun habe ich folgte tutorials beim erstellen von foreign keys etc aber wenn ich mein Projekt, und versuchen Sie zum einfügen von Daten in die person-Tabelle bekomme ich folgende Fehlermeldung

Die Eigenschaft 'UserId' kann konfiguriert werden, wie eine navigation-Eigenschaft. Die Eigenschaft muss eine gültige entity-Typ und die Immobilie sollte eine nicht-abstrakte getter und setter. Für die Sammlung Eigenschaften der Typ muss ICollection implementieren, wobei T eine gültige entity-Typ.

InformationsquelleAutor Code Ratchet | 2014-10-25
Schreibe einen Kommentar