Subsonic 3.0 ActiveRecord с датами - PullRequest
3 голосов
/ 07 декабря 2010

У меня небольшая проблема с запросом.

В моей базе данных время хранится как ГГГГ-ММ-дд ЧЧ: мм: сс

У меня следующий запрос LINQ:

var visitors = Visitor.All().Where(x=>x.Date_Moderated < dateTime).OrderByDescending(x => x.Date_Moderated).Take(limit);

Проблема в том, что это переводится на:

SELECT TOP (100) [t0].VisitorId, <COLUMNS TRUNCATED FOR BREVITY AND PRIVACY>
FROM [dbo].[Visitor] AS t0
WHERE ([t0].[Date_Moderated] < '07/12/2010 18:53:58')
ORDER BY [t0].[Date_Moderated] DESC

Как вы видите, параметр даты не в правильном формате, и SQL Server преобразует его в дату и время в США, поэтомуя не получаю никаких результатов, когда мне нужно получить 100.

Кто-нибудь знает, как правильно настроить формат даты в Subsonic?Или, альтернативно, лучший способ структурировать мой запрос.

С уважением, Роб

Ответы [ 2 ]

1 голос
/ 07 декабря 2010

Я решил эту проблему, изменив свой запрос следующим образом:

var myDb = new MyDB(); //Database context renamed for privacy
var select = myDb.Select.Top("100")
                        .From("Visitor")
                        .Where("Date_Moderated")
                        .IsLessThan(dateTime.ToString("yyyy-MM-dd HH:mm:ss"))
                        .OrderDesc("Date_Moderated");

var visitors = select.ExecuteTypedList<Visitor>();
1 голос
/ 07 декабря 2010

Один из ответов на этот вопрос поможет?

...