Entity Framework - Sélectionner des colonnes spécifiques et en retour fortement typé, sans perdre de cast

Je suis en train de faire quelque chose de similaire à ce post où je n'ai pas reculer toutes les colonnes d'une entité particulière, cependant mon cadre fait de l'utilisation de l'héritage et je perds le champ d'application du type d'entité après avoir été jeté d'un type anonyme.

De la structure de mon Cadre de l'Entité est une entité de base appelé Action. À partir de là, j'ai créé deux hérité d'entités appelées Événement et Activité. Je veux la tirer en arrière le dernier X Actions et de les transmettre à ma vue fortement typée qui accepte une Action et à partir de là, détermine si son d'une Activité ou d'un Événement et rend la bonne vue partielle.

if(Model.GetType() == typeof(Event))
{
  //render Event view
}
else if(Model.GetType() == typeof(Activity))
{
  //render Activity view
}

Je peux afficher les 10 derniers comme un type anonyme et puis cast:

var result = from a in new DataContext().Actions
             where a.UserId == someGuidValue
             select new { a.CreatedOn, a.Summary };

List<Action> list = result.AsEnumerable()
                          .Select(o => new Action {
                                           CreatedOn = o.CreatedOn, 
                                           Summary = o.Summary
                          }).ToList();

Cependant, une fois que je passe la nouvelle Liste d'Actions à mon fortement typé vue, il perd sa portée qu'il s'agisse d'une Activité ou d'un Événement puisqu'il a été jeté comme une Action. Ma question est, sans exposer la colonne discriminante, est-il possible de jeter chaque élément du type approprié ou je suis aller sur ce de la mauvaise façon?

OriginalL'auteur XVargas | 2009-10-29