Ich habe eine KontaktklasseEntity Framework - Modellierung mehrere Rollen für gleiche Einheit
[Table("Contacts")]
public class Contact
{
public string Id { get; set; }
public string Name { get; set; }
}
Ich habe zwei von Kontakt Vererbungsklassen:
[Table("Employees")]
public class Employee : Contact
{
public decimal Salary { get; set; }
}
[Table("Suppliers")]
public class Supplier : Contact
{
public string TIN { get; set; }
}
Ich bin mit Entity Framework-6.3 als meine ORM.
Can I model something where the same contact can be both Employee and Supplier with the same unique Id.
Employee emp = new Employee();
emp.Id = "C1";
emp.Name = "Employees";
emp.Salary = 10000;
emp.TrackingState = TrackingState.Added;
Supplier sup = new Supplier();
sup.Id = "C1";
sup.Name = "Employees";
sup.TIN = "ABC";
sup.TrackingState = TrackingState.Added;
Wenn ich tun:
context.Employee.Add(emp);
context.Supplier.Add(sup);
context.Save();
Offensichtlich wird es mir nicht erlauben, den Datensatz hinzuzufügen. Ich erhalte eine Fehlermeldung:...
„Verletzung von PRIMARY KEY-Einschränkung 'PK_dbo.Contacts' Doppelt Schlüssel kann nicht in Objekt 'dbo.Contacts' einfügen Der doppelte Schlüsselwert (C1) \ r \ nDie Anweisung hat wurde beendet. "
Can I make the Supplier also share the same Id as that of employee and enable insert/update of employee and supplier?
Dank
Danke. Das sieht sehr gut aus. Aber gibt es eine Möglichkeit, dies mit einer IsA-Beziehung umzusetzen? – Satyajit
Wie bereits erwähnt, verwenden Sie eine TPT- oder TPC-Zuordnung und Sie sollten die gleiche ID als beide Typen haben. Ich denke jedoch, dass Sie den Rahmen dafür wirklich kämpfen. – PilotBob
Danke. Ich habe das mit TPT-Mapping probiert. Ich erhalte den Fehler, der oben im Beitrag erwähnt wurde. – Satyajit