Вы должны иметь возможность проецировать на анонимный тип, а затем использовать ToArray()
, как только вы вернетесь в Linq для приземления объектов, используя AsEnumerable()
:
var sites =
(from country in db.Countries
select new
{
Country = country.Title,
Cities = country.Cities.Select(m => m.Title)
})
.AsEnumerable()
.Select(country => new SitiesViewByUser()
{
Country = country.Title,
City = country.Cities.ToArray()
};
Проблема в том, что ToArray()
просто не определен для поставщика Linq to Entities IQueryable
(что будет эквивалентным вызовом в SQL?).Следовательно, вам нужно захватить свои результаты, переключиться на Linq to Objects и , затем вы можете материализовать их по мере необходимости.