Ich arbeite an der Zuordnung einer Beziehung zwischen zwei Objekten, aber ich erhalte einen Fehler beim Mapping.Eins-zu-Eins-Beziehung Entity Framework-Fremdschlüsselzuordnung
Ich habe die folgenden Objekte:
public abstract class EntityBase : IEntity
{
public int Id { get; set; }
}
public class ManagerUser : EntityBase
{
public string UserCode { get; set; }
public string Title { get; set; }
public virtual Staff StaffDetails { get; set; }
}
public class Staff : EntityBase
{
public string UserCode { get; set; }
public string DOB { get; set; }
}
public class ManagerUserMap : EntityMapBase<ManagerUser>
{
protected override void SetupMappings()
{
base.SetupMappings();
//this.HasKey(t => t.UserCode);
this.ToTable("ManagerUsers");
this.Property(t => t.Id).HasColumnName("ManagerUsersID")
.HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity);
this.Property(t => t.Title).HasColumnName("txtTitle");
this.HasRequired(x => x.StaffDetails)
.WithMany()
.HasForeignKey(x => x.UserCode);
}
}
public class StaffMap : EntityMapBase<Staff>
{
protected override void SetupMappings()
{
base.SetupMappings();
//this.HasKey(t => t.UserCode);
this.ToTable("TblStaff");
this.Property(t => t.Id).HasColumnName("StaffID")
.HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity);
this.Property(t => t.UserCode).HasColumnName("User_Code");
this.Property(t => t.DateOfBirth).HasColumnName("dob");
}
}
ich die folgende Störung erhalte:
The type of property 'UserCode' on entity 'ManagerUser' does not match the type of property 'Id' on entity 'Staff' in the referential constraint 'ManagerUser_StaffDetails'
ich um gesucht haben und gescheitert, eine Lösung zu finden, um den Fremdschlüssel zu vergleichen zu bekommen in ManagerUser
mit der UserCode
Eigenschaft in Staff
anstelle der ID
Eigenschaft.
Sie Usercode als Primärschlüssel zuweisen für beide ManagerUser und Mitarbeiter und am sametime, haben Sie die Usercode Angabe ist ein foreignkey für das Personal ... –
Sie können nicht Mach das in EF6. EF6 kann FK nur für den PK des "Principals" der Beziehung erstellen. –