2010-10-10 4 views

Répondre

0

le point entier d'une classe abstraite est que vous en héritez et que vous ne pouvez pas créer directement en instance. Ainsi, dans entity framework, elle représente la normalisation des données de plusieurs tables dans une table commune et utilise ensuite l'héritage de table pour avoir un ensemble d'objets avec des types variables qui peuvent être tret en un seul type.

en supposant que vous avez une classe abstraite appelé objet et quelques héritières de ce qui ont des données dans les tableaux ...

vous pouvez alors écrire des choses comme ça

var results = from i in dataContext.Objects.OfType<Foo>() 
       select i 

vous pouvez aussi le faire

var results = from i in dataContext.Objects 
        select i 

et vous obtiendrez une collection de classe abstraite Object, dont chaque membre sera une instance d'une classe qui hérite de l'objet.

Cela signifie que vous pouvez avoir un comportement commun ou un comportement surchargé dans les sous-types. C'est très puissant dans les bons endroits ... .eg types de transactions ou types de méthodes de paiement.

0

Les types abstraits sont des types/classes qui ne peuvent pas être instanciés. Ce qui signifie que vous ne pouvez pas créer d'objets à partir de cette classe. Si vous avez une classe abstraite 'foo', vous ne pouvez pas appeler new foo() (exemple de code Java). Voir wiki pour plus d'informations sur les types abstraits.

+0

Ceci est une bonne réponse à propos des types abtracts, bien que non (comme demandé) dans le contexte d'Entity Framework. –

+0

Je n'ai trouvé aucune référence sur le Web à un concept appelé * classe abstraite * spécifique à Entity Framework et différent du sens "normal", donc cette réponse semble appropriée. – Timwi

+0

Je devrais probablement avoir spécifié le concept d'un type abstrait comme étant un concept général et non lié au contexte d'Entity Framework. Ma faute! – thomaux

Questions connexes