Asp.net MVC 3 Linq DateTime - PullRequest
       15

Asp.net MVC 3 Linq DateTime

0 голосов
/ 14 июля 2011

Мне нужен оператор linq, который возвращает все записи с определенной даты. В тот момент, когда у меня есть класс в моем контроллере, который обрабатывает события. Мой класс Index содержит оператор linq, который группирует отверстия по дате и возвращает их количество на каждую дату. Я хочу класс просмотра, который возвращает список событий, связанных с определенной датой. Вот мой режим:

  namespace NewAtAClick.Models
  {
    public class WhatsOn
    {

    public int ID { get; set; }
    public DateTime? start { get; set; }
    public DateTime? end { get; set; }
    public string Name { get; set; }
    public string Desc { get; set; }
    public string link { get; set; }
    public bool CalenderDisplay { get; set; }
    public DateTime? day { get; set; }
    public int whtscount { get; set; }
    }
  }

А вот мои занятия в контроллере WhatsOn;

   public ViewResult Index(WhatsOn model)
   {
        DateTime myDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);

        var datequery =
                        db.WhatsOns.Where(c => c.start > myDate)
                        .OrderByDescending(c => c.start)
                        .GroupBy(c => c.start).AsEnumerable().Select(
                        sGroup => new WhatsOn
                        {
                            day = sGroup.Key,
                            whtscount = sGroup.Count()
                        });

        return View(datequery);
    }

    public ViewResult Browse(DateTime? day , int? id)
    {         
        var eventsquery = from c in db.WhatsOns
                          where c.start == day
                           select c;

        return View(eventsquery);
    }

А в тот момент, когда запрос linq в классе просмотра ничего не возвращает, только пустая таблица. Любая помощь с благодарностью! Спасибо.

UPDATE:

Эй! Получил это работает

Вот мой новый контроллер;

    public ViewResult Browse(int? id, DateTime? day, DateTime? start)
    {

        var eventsquery = from c in db.WhatsOns where c.start.Value.Day == day.Value.Day select c;

        return View(eventsquery);


    }

А что сделал трюк, по моему actionlink на мой взгляд ....

 @Html.ActionLink("Browse", "Browse", new { start=item.start, day=item.day })

Спасибо за помощь !!

Ответы [ 2 ]

1 голос
/ 14 июля 2011

делает

var eventsquery = from c in db.WhatsOns
                  where c.start.Value.Date == day.Value.Date
                  select c;

работа

0 голосов
/ 14 июля 2011

При сравнении объектов DateTime имейте в виду, что знак '==' также показывает секунды, миллисекунды и т. Д.

У вас есть какие-либо результаты, которые вы действительно ожидаете?Заполнена ли таблица базы данных информацией?

Изменить: DateTime.Now вы уже использовали;)

...