J'ai une classe de contactEntity Framework - Modélisation des rôles multiples pour une même entité
[Table("Contacts")]
public class Contact
{
public string Id { get; set; }
public string Name { get; set; }
}
J'ai deux classes héritant de Contact:
[Table("Employees")]
public class Employee : Contact
{
public decimal Salary { get; set; }
}
[Table("Suppliers")]
public class Supplier : Contact
{
public string TIN { get; set; }
}
J'utilise Entity Framework 6.3 comme mon 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;
Quand je fais:
context.Employee.Add(emp);
context.Supplier.Add(sup);
context.Save();
De toute évidence, il ne me permet pas d'ajouter le dossier. je reçois une erreur:...
« Violation de contrainte PRIMARY KEY 'PK_dbo.Contacts' Impossible d'insérer clé en double dans l'objet 'dbo.Contacts' La valeur clé en double est (C1) \ r déclaration \ nLe a été résilié. "
Can I make the Supplier also share the same Id as that of employee and enable insert/update of employee and supplier?
Merci
Merci. Cela a l'air très bien. Mais est-il possible d'implémenter ceci avec une relation IsA. – Satyajit
Comme je l'ai dit, utilisez un mappage TPT ou TPC et vous devriez être capable d'avoir le même ID que les deux types. Cependant, je pense que vous vous battez vraiment le cadre en faisant cela. – PilotBob
Merci. J'ai essayé ceci avec la cartographie TPT. J'ai l'erreur mentionnée dans le message ci-dessus. – Satyajit