У меня есть 2 таблицы (Document и DocumentClass), которые имеют следующие столбцы:
DocumentClass: DocClassID, Name, ParentID
Документ: DocID, Name, DocClassID
Таблица DocumentClass
содержит родительские и дочерние записи, а отношения между родителем и дочерним элементом - это столбец ParentID.Запись Document
связана с дочерней записью в DocumentClass
внешним ключом DocClassID.
Родительские записи в DocumentClass
имеют ParentID = 0, а дочерние записи в DocumentClass
имеют ParentID! =0
Я хочу получить имя ребенка и имя родителя этого ребенка из таблицы DocumentClass
.
Мне удалось создать функцию, которая сделает это за меня.Я отправляю список идентификаторов документов, нахожу те записи DocumentClass
(дочерние записи), с которыми связан документ, а затем нахожу родителя для этих дочерних записей.Затем я помещаю эту информацию в класс Child.
public List<Child> GetDocClassInfo(List<int> docIds)
{
var result = from dc in _context.DocClasses
from d in _context.Documents
where dc.DocClassID == d.DocClassID
where dc.DocClassID != 0
where docIds.Contains(d.DocID)
select new
{
children = from p in _context.DocClasses
where dc.ParentID == p.DocClassID
select new Child
{
ChildId = dc.DocClassID,
ChildDocClassName = dc.DocClassName,
ParentId = p.DocClassID,
ParentDocClassName = p.DocClassName
}
};
return result.ToList();
}
Моя проблема в том, что я хочу получить List для возврата из функции, но компилятору это совсем не нравится.Я получаю сообщение об ошибке, говорящее, что
Невозможно неявно преобразовать тип System.Collections.Generic.List``<AnonymousType#1>
в System.Collection.Generic.List<Child>
.
Как мне написать этот запрос LINQ для возврата списка?
С уважением,
OKB