2010-07-30 4 views
2

J'ai une base de données existante contenant un article et une table de blog. Ceux-ci ont des colonnes communes telles que le titre, l'auteur répété dans les deux tableaux. Je souhaite utiliser le framework d'entité pour créer une entité Content qui extrait les propriétés communes afin que je puisse hériter de l'entité Content dans l'article et l'entité Blog.Héritage dans le cadre d'entité - Table par classe concrète?

L'idée étant que je peux dire ok il suffit de me faire tout le contenu sur le site dans les 10 derniers jours, je ne me soucie pas si c'est un blog ou un article. Puis, quand j'ai besoin d'aller chercher un article malade, allez chercher l'entité spécifique.

J'ai mis en place une base d'entité de contenu et j'ai récupéré toutes les propriétés communes du blog et de l'objectif. Le problème est ce que j'essaie de dire dans le contenu. J'ai eu deux mappings un à la table de blog et un à la table d'article et EF se plaint qu'il ne peut pas deviner lequel à goto. J'espérais ajouter des conditions pour le faire, mais si j'ajoute une condition spécifique de blog (ce n'est pas répertorié dans ma classe de base), il se plaint qu'il ne peut pas trouver la cartographie.

Je pose ma première question: est-ce que je regarde cela complètement à l'envers pour que mon entité Contents obtienne des données de la table de l'article et du blog?

Merci

Phil

Modifier: Ajout des schémas types et db

alt text alt text

Répondre

0

Je ne suis pas au courant de l'entité mais pourriez-vous créer une vue dans la base de données qui contient toutes les données communes plus une clé supplémentaire qui identifie l'enregistrement comme un blog ou un article.

Vous pouvez ensuite ajouter la vue à votre modèle Entity, l'utiliser pour remplir votre cas d'utilisation "Obtenir le contenu des 10 derniers jours", puis lorsque vous avez besoin de plus de détails, utilisez la clé supplémentaire ajoutée à la vue pour déterminer si vous devez aller au blog ou aux entités d'article. Je sais que ce n'est pas aussi propre et rangé que vous le souhaitez, mais cela pourrait faire l'affaire.

0

Comme il est mentionné here il n'y a pas de support d'héritage TPC dans EF ADO.NET Designer (mais EF initialement). Cela doit donc être implémenté manuellement en XML ou par Code First.

Questions connexes