2010-10-11 6 views
1

Dans mon previous question, j'ai demandé comment je concevrais le schéma de base de données où 1 table (commentaires) référencerait 2 tables (questions et réponses). On m'a donné la réponse pour utiliser une table pour les questions et réponses (l'OS utilise les postes).EF4 - Carte 1 Table à 2 objets

Maintenant je suis dans Entity Framework 4. Comment puis-je le configurer pour que ce un tableau (Messages) mappe à 2 objets (Question, Réponse)? Dois-je le faire dans ma couche de données, ou le faire dans Business Layer?

Je pensais que je devrais faire la conversion dans ma couche de données, de sorte que je ne sélectionne pas trop de colonnes inutiles de la base de données.

Répondre

1

Crée une entité parent unique appelée Post et dérive deux entités (Question, Réponse) de la publication. Votre table Post doit avoir une seule colonne qui différera le type de message (question ou réponse). Créez ensuite table per hiearchy mapping avec cette colonne comme discriminateur.

+0

Merci, j'ai eu du mal avec ça hier soir. Je ne comprends pas pourquoi la colonne conditionnelle (PersonCategory dans l'exemple) ne peut pas être n'importe où dans le fichier EDMX. Ça m'a pris 2 heures pour comprendre ça. – Martin

+0

Parce que ce n'est pas une colonne de données, c'est une colonne qui diffère de vos types (Question, Réponse). –

Questions connexes