Я пытаюсь сделать что-то похожее на этот пост , где я не извлекаю все столбцы из конкретной сущности, однако моя структура использует наследование, и я теряю область видимости типа сущности после это было приведено к анонимному типу.
Структура моей Entity Framework имеет базовую сущность с именем Action . Отсюда я создал две унаследованные сущности с именами Event и Activity . Я хочу вернуть последние X-действия и передать их моему строго типизированному представлению, которое принимает действие и оттуда определяет, является ли оно действием или событием, и отображает правильное частичное представление.
if(Model.GetType() == typeof(Event))
{
//render Event view
}
else if(Model.GetType() == typeof(Activity))
{
//render Activity view
}
Я могу взять последние 10 как анонимный тип и затем разыграть:
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();
Однако, как только я передаю новый Список действий в мое строго типизированное представление, он теряет область действия, будь то Активность или Событие, так как он был разыгран как Действие. У меня вопрос, не раскрывая столбец дискриминатора, есть ли способ привести каждый элемент к нужному типу или я поступаю неправильно?