Я пытаюсь отобразить результаты запроса, сложность состоит в том, что каждая строка в таблице будет включать в себя один объект Route и список объектов Visit. Я хочу, чтобы сохранить результаты запроса в списке RouteViewModels:Невозможно создать постоянное значение типа ''. В этом контексте поддерживаются только примитивные типы или типы перечислений
public class RouteViewModel
{
public Route Route { get; set; }
public List<Visit> Visits { get; set; }
}
бегает запрос и попытаться сохранить результаты:
var query =
from r in db.Routes
join v in visitList on r equals v.Route into visits
select new { RouteObject = r, VisitList = visits };
int i = 0;
foreach (var prodGroup in query)
{
vm[i].Route = prodGroup.RouteObject; //vm is an list of RouteViewModels.
j = 0;
foreach(var prodItem in prodGroup.VisitList)
{
vm[i].Visits[j] = prodItem;
j++;
}
i++;
}
Я написал цикл Еогеаспа следующего ответы на аналогичные должности, но эта строка дает мне ошибку:
Unable to create a constant value of type 'ApplicationDatabase.Visit'. Only primitive types or enumeration types are supported in this context
Как получить доступ к Маршруту и его списку посещений?
Какая линия исходит от этой ошибки? –
После некоторого Googling, кажется, проблема в том, что вы используете 'visitList'. ["Вы не можете присоединиться к набору данных в базе данных с другим набором данных, который находится в памяти."] (Http://stackoverflow.com/a/18944508/785745) –
Попробуйте изменить тип посещений на IEnumerable. Попробуйте перечислить query.ToList() вместо запроса. Это фактически заставит ваш запрос выполнить, поэтому у вас есть все данные в памяти. –
qbik