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.
- Mögliche Duplikate von: stackoverflow.com/questions/21856218/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lerne ich erste code auch. Ich bin mit der fluent-API, also ich bin nicht so erfahren mit Anmerkungen. Ich denke, die Art und Weise machst du deine foreign keys falsch. Ich denke, Sie sollten so Aussehen:
Der Unterschied ist, Sie haben eine variable mit dem Typ für die FK und kommentieren, dass. Sie können sich auch die fluent-API.
sehen http://www.codeproject.com/Articles/319366/EF-Code-First-Add-a-Foreign-Key-relationship