Die Frage ist eine, die ich eine Fehlermeldung lesen bin immer:0..1 N Referenzierung Relation -> Fehlermeldung Ich verstehe nicht
Die INSERT-Anweisung in Konflikt mit der FOREIGN KEY-Einschränkung „FK_dbo .Users_dbo.People_Id ". Der Konflikt trat in Datenbank "TrialDb", Tabelle "dbo.People", Spalte 'Id'
Ich versuche folgendes zu implment:
User
kann einPerson
zugewiesen undPerson
viele habenUser
zugewiesen- jede Entität, dh
Person
oder jede andere, wird einen Ersteller und eine wechselnde Benutzergruppe haben.
Die Beziehung shold one-way, was bedeutet, dass User
keine Navigationseigenschaft für Person
benötigt.
Was ich tue, versucht, eine User
zu meiner Datenbank hinzuzufügen, die den oben genannten Fehler ergibt.
Hier ist die User
und Person
Klassendefinition (abgekürzt)
public class User
{
public int Id {get; set;}
public int? PersonId {get; set; }
public virtual Person Person {get; set;}
// two self-refencing properties
public int CreatorId {get; set; }
public virtual Person Creator{get; set;}
public int ChangingUserId {get; set; }
public virtual Person ChangingUser {get; set;}
public byte[] RowVersion {get; set;}
}
public class Person
{
public int Id {get; set;}
public virtual ICollection<User> Users {get; set;}
public byte[] RowVersion {get; set;}
}
Meine Konfigurationsklassen für die beiden Einheiten sind wie folgt:
public class UserMap : EntityTypeConfiguration<User>
{
public UserMap()
{
HasRequired (p => p.Creator).WithRequiredPrincipal().WillCascadeOnDelete (false);
HasRequired (p => p.ChangingUser).WithRequiredPrincipal().WillCascadeOnDelete (false);
// 0..1 : N relation
HasOptional (p => p.Person).WithMany (p => p.Users).HasForeignKey (p => p.PersonId);
Property (p => p.RowVersion).IsRowVersion();
}
}
public class PersonMap : EntityTypeConfiguration<Person>
{
public PersonMap()
{
HasRequired (p => p.Creator).WithRequiredPrincipal().WillCascadeOnDelete (false);
HasRequired (p => p.ChangingUser).WithRequiredPrincipal().WillCascadeOnDelete (false);
// 0..1 : N relations - tried this as well - same result
//HasOptional (p => p.Company).WithMany (p => p.Employees).HasForeignKey (p => p.CompanyId);
//HasOptional (p => p.Facility).WithMany (p => p.People).HasForeignKey (p => p.FacilityId);
Property (p => p.RowVersion).IsRowVersion();
}
}
Kann mir jemand helfen mit diesem? Es wäre am besten zu schätzen!
Vielen Dank für die Antwort, die mein Problem gelöst hat! – mph