У меня есть таблица и мне нужно GroupBy date tBooked Мне нужна группа, чтобы вернуть Min StartDate и Max EndDate Мне нужна сумма дней. я написал следующее:MVC Linq, используя GroupBy Min Max и возвращаемый вид
var model = _db.AnnualLeaves.Where(r => r.StafferId == stafferId)
.GroupBy(r => r.tBooked)
.Select(m => new
{
start = m.Min(r => r.StartDate),
end = m.Max(r => r.EndDate),
daycount = m.Sum(r => r.Days)
});
Я не могу показаться, чтобы получить модель, чтобы вернуться в представлении. Я пробовал все виды foreach, но ничего не получал ошибок.
Если я создаю View со следующим:
@foreach (var item in ViewData.Model)
{
@item
}
Вид визуализирует:
{ start = 15/10/2014 00:00:00, end = 21/10/2014 00:00:00, daycount = 5 }
{ start = 28/06/2015 00:00:00, end = 03/07/2015 00:00:00, daycount = 4.5 }
Купить Я не могу получить @item.start
на страницу.
Я попытался создать модель и изменить приведенный выше var model
на IEnumerable
на модель ниже.
public class ListLeaveModel
{
public DateTime start { get; set; }
public DateTime end { get; set; }
public double daycount { get; set; }
}
Кажется, что я сейчас кружась в кругах. Я только что начал с MVC и C#, поэтому это, наверное, что-то очень простое! Надеюсь, это понятно - я понятия не имею, что важно.
Вы пробовали возвращенные сами данные, т.е. не используя ViewData/ViewBag ... вернуться this.View (модель); Если это не решится; Я подозреваю, что вы возвращаете IQueryable, поэтому в своем заявлении linq попробуйте положить ToList() в конец. –
Попробуйте '@ String.Format (" {0: d} ", item.start)' – chridam
Спасибо, ребята. Пол, да, я пробовал все это - когда я добавил .ToList() до конца, это вызвало еще одну проблему. Исправлено, как показано ниже ... – PawnSacrifice