Я рассмотрел несколько возможных решений моей проблемы, но не нашел правильного.
Мне нужен полный набор, то есть мне нужно выбрать типы, которые также имеют базовый тип. то есть тип ActionHistory, а также все остальные, которые наследуются от базового класса ActionHistory. Моя проблема заключалась в том, что я получал все сущности, но у объектов типа ActionUpdate не было заполненной коллекции ActionUpdateDetails.
Моя проблема в том, что я не могу получить данные ActionUpdateDetails в производном классе ActionUpdate .
В модели есть три класса:
public class ActionHistory
{
public int Id {get;set;}
}
public class ActionUpdate : ActionHistory
{
public ICollection<ActionUpdateDetail> ActionUpdateDetails{get;set;}
}
public class ActionUpdateDetail
{
int Id{get;set;}
public string Field{get;set;}
public string Value{get;set;}
}
Я попытался реализовать решение из этого предложения:
Entity Framework: наследование и включение
Как это:
var result = from actionHistory in ActionHistories
select new {
actionHistory,
actionUpdateDetails = actionHistory is ActionUpdate ?
(actionHistory as ActionUpdate).ActionUpdateDetails : null
};
Все, что я получаю, это сообщение об исключении:
Невозможно создать постоянное значение типа 'System.Collections.Generic.ICollection`1'. В этом контексте поддерживаются только примитивные типы (такие как Int32, String и Guid).
Затем я попытался смоделировать ситуацию вне EF, и это сработало. Я использую модель POCO и извлек соответствующие классы в отдельный проект, заполнил образец структуры данными и успешно проверил его, т. Е. ActionUpdateDetails коллекция была заполнена данными.
Любая помощь в этом будет оценена!
* * +1032 Н. * * тысяча тридцать три