Я использую плагин jquery Fullcalendar для отображения событий в представлении календаря в моем приложении MVC 4.Linq-To-Entities и запрос с датами
Я настроил плагин, который правильно вызывает действие моего контроллера, передавая два двойных параметра, которые представляют дату начала и дату окончания, отображаемую в текущем представлении в форматах timestamp unix.
Здесь вы можете увидеть мой контроллер метод действия
[HttpPost]
public ActionResult GetEvents(double start, double end) {
DateTime dtStart = DateTimeUtils.UnixTimeStampToDateTime(start);
DateTime dtEnd = DateTimeUtils.UnixTimeStampToDateTime(end);
IPolicyRepository _pRepo = _uow.PolicyRepository;
IEnumerable<Policy> model =
_pRepo.Find(p => p.EndDate >= dtStart.Date && p.EndDate < dtEnd.Date);
...
}
Метод DateTimeUtils.UnixTimeStampToDateTime(double)
преобразует временную метку UNIX в объекте даты и времени следующим образом
public static DateTime UnixTimeStampToDateTime(double unixTimeStamp) {
// Unix timestamp is seconds past epoch
DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime();
return dtDateTime;
}
Однако Find
метод хранилища, который в свою очередь, просто передать лямбду в EF, не возвращает ни одной строки, даже если некоторые строки существуют. Я подозреваю, что эта проблема может быть вызвана различными форматами и/или языками, которые у меня есть между браузером и сервером базы данных.
Как я могу решить эту проблему и создать запрос, который будет знать о локалях и определенных форматах?
EDIT: Для получения более подробной информации я добавляю определение модели здесь
public partial class Policy
{
public int PolicyID { get; set; }
[...]
[Required]
[DisplayName("Begin date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}")]
public DateTime BeginDate { get; set; }
[Required]
[DisplayName("Due Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}")]
public DateTime EndDate { get; set; }
}
Предполагая, что SQL, возможно, запущен 'Профилировщик' и посмотреть, что он отправляет? – MisterIsaak
Вы можете начать головную боль, сосредоточенную вокруг глобализации/локализации ... http://msdn.microsoft.com/en-us/library/aa292205%28v=vs.71%29.aspx –
@JIsaak: спасибо за ответ. могу ли я использовать профайлер на экземпляре localdb? – Lorenzo