Comment mettre en œuvre l'héritage de Table Par Type dans le Cadre de l'Entité 4.3 via une Première approche de Code?
J'ai cette hiérarchie de classes dans le code:
[Table("A")]
public class A : IIdentification
{
public int id { get; set; }
}
[Table("B")]
public class B : A
{
//some properties here
public Aid { get; set;}
ForeignKey("Aid");
public A A { get; set; }
}
[Table("C")]
public class C : B
{
//some properties here
public Bid { get; set; }
ForeignKey("Bid");
public B B { get; set; }
}
[Table("D")]
public class D : C
{
public Cid { get; set;}
ForeignKey("Cid");
public C C { get; set; }
}
Comment puis-je faire une table avec une clé étrangère pour chaque classe ou de quelque autre manière correcte?
Peut-être que quelqu'un pourrait poster des exemples de la manière de l'atteindre?
C'est peut-être question triviale, mais j'ai passé toute la journée, mis en place de nombreuses solutions décrites dans les rubriques et toujours pas de travail. Alors je serai très reconnaissant si quelqu'un pouvait m'aider.
OriginalL'auteur Fedor | 2012-03-05
Vous devez vous connecter pour publier un commentaire.
En héritage mappé vous n'avez pas accessible à la navigation de la propriété de la société mère, sauf si vous souhaitez un autre modèle de relation. L'héritage est "est" une relation, donc B est Un alors que FK est "a une" relation.
Ici, vous avez un soluce grande pour TPT héritage.
Quelle est l'erreur? Vous n'avez pas mentionné dans votre question.
désolé, mispressed entrée au lieu de shift+enter... Erreur 3034: Deux entités avec des clés différentes sont mappés sur la même ligne. Veiller à ce que ces deux la cartographie des fragments de ne pas mapper des deux groupes d'entités avec chevauchement des touches pour le même groupe de lignes. J'ai essayé de spécifier toutes les classes abstraites, à l'exception de D. Supprimé tous les FK-trucs et en Dbset bloc écrire A, B & C.
J'ai besoin de dire que, dans la situation: "B:" il fonctionne très bien, mais quand C tente hérite de B et de B à partir d'Un cette erreur se produit.
Ladislav, je vous remercie pour vos conseils et votre lien. J'ai re-vérifié avec plus d'attention aujourd'hui et d'avoir mis en œuvre sur un projet, avec la dernière version de EF (4.3.1) et tout fonctionne bien!
OriginalL'auteur Ladislav Mrnka