У меня есть служба ServiceStack с использованием autoquery, где DateTime больше или меньше, чем игнорируются.ServiceStack AutoQuery не работает для значений DateTime
Вот мой запрос DTO:
public class GetSources : QueryBase<DbSource, Source>
{
public string Name { get; set; }
public string NameContains { get; set; }
public string NameStartsWith { get; set; }
public DateTime? LastUpdatedDateGreaterThan { get; set; }
public DateTime? LastUpdatedDateLessThan { get; set; }
}
Таблица базы данных росо генерируется из ormlite шаблона T4 выглядит следующим образом:
[Alias("DbSources")]
[Schema("SomeSchema")]
public partial class DbSource
{
[AutoIncrement]
public int Id { get; set;}
[Required]
public string Name { get; set;}
[Required]
public DateTime LastUpdatedDate { get; set;}
}
В службе я сделать некоторые проверки, а затем использовать AutoQuery как это:
var q = AutoQuery.CreateQuery(dto, Request.GetRequestParams());
q.Join<DbSource, CompanySource>((source, companySource) => source.Id == companySource.SourceId && companySource.CompanyID == companyId);
return AutoQuery.Execute(dto, q);
Я использую MSTest
[TestMethod]
public void GetSources_LastUpdatedGreaterThan()
{
var expected = DateTime.Now;
var query = new GetSources { LastUpdatedDateGreaterThan = expected};
QueryResponse<Source> result;
using (var service = appHost.Container.Resolve<SourceService>())
{
service.Request = new MockHttpRequest();
result = service.Any(query);
}
log.Info(result.ToJson());
result.Results.ForEach(src => Assert.IsTrue(src.LastUpdatedDate > expected));
}
Имя, NameContains и NameStartsWith все работы, как ожидается, в других тестах, но оба LastUpdatedDateGreaterThan и LastUpdatedDateLessThan не порождают где положение. В моей настройке AutoQuery все свойства являются значениями по умолчанию, за исключением EnableUntypedQueries, который является ложным.
Я знаю, что могу явно добавить, где для них в службе. то есть
q.Where(source => source.LastUpdatedDate > dto.LastUpdatedDateGreaterThan);
Но если возможно, я бы хотел, чтобы AutoQuery позаботился об этом. Работает ли DateTime с AutoQuery? Или я делаю что-то неправильно в своем коде.
Можно ли создать автономный репрограмм (например, в репозитории github или gistub), поскольку я не могу воспроизвести [любые проблемы с использованием DateTime с помощью AutoQuery] (https://github.com/ServiceStack/ServiceStack/фиксации/90153dde65475f7fd81bca73766524b50e36d68b). – mythz