Когда мое представление визуализируется, мне нужно будет получить данные о местоположении (массив длинных/лат-координат), исходящий из моей модели просмотра. Я буду использовать Javascript для чтения этих значений и построения их на карте Google. В настоящее время я получаю результаты, которые содержат данные о местоположении, но я не уверен, как эффективно получить данные о местоположении из результатов и поместить их в другое свойство в моей модели представления. Должно ли это быть с нетерпением загружено, лениво загружено и т. Д.? Я как бы новичок в Linq и EF.Будет ли загружать запрос Linq to Entity до того, как мой взгляд замедлит работу?
У меня есть модель представления, которая выглядит примерно так
public class YogaSpaceListViewModel
{
public IPagedList<YogaSpaceResults> YogaSpaces { get; set; }
// I need to put all LocationPoints data from the query results into a collection here
//public some collection here LocationResults { get; set; }
}
FYI IPagedList наследуется от IEnumerable.
Когда я приведу результаты, вот мой запрос. Я помещал результаты в анонимный тип «YogaSpaceResults», и вы можете видеть, что он содержит данные «LocationPoints», которые я хочу сохранить в моей модели viewmodel.
var events = (from u in context.YogaSpaceEvents
orderby u.YogaSpace.Address.LocationPoints.Distance(myLocation)
where
(u.DateTimeScheduled >= classDate) &&
(u.YogaSpace.Address.LocationPoints.Distance(myLocation) <= 8047)
select new YogaSpaceResults
{
LocationPoints = u.YogaSpace.Address.LocationPoints,
Title = u.YogaSpace.Overview.Title,
Summary = u.YogaSpace.Overview.Summary,
Date = u.DateTimeScheduled
}).ToPagedList(page, 10);
и на мой взгляд, я делаю что-то вроде этого
@foreach (var space in Model.YogaSpaces)
{
<div>
<h4>@space.Title</h4>
<div>
@space.Summary
<br/>
@space.Date
</div>
</div>
<hr />
}