У меня есть запрос о том, как datetimes сравниваются/сохраняются на C#. Рассмотрим следующий код:Сравнение равных дат, не сравниваемых
var createdDate = DateTime.Now;
using (cr = new LanguageDictionaryRepository(ds)) {
cr.Add(new Sybrin10.Data.DTO.LanguageDictionary() {
Active = true,
CreatedDate = createdDate,
CultureCode = cultureCode,
Data = new System.Text.UTF8Encoding().GetBytes("Test")
});
cr.Save();
var y = cr.FindBy(x => x.CultureCode == cultureCode && x.CreatedDate == createdDate).FirstOrDefault();
Assert.IsNotNull(y);
Assert.IsNotNull не удается из-за проверки даты и времени. Я ожидал бы, что, поскольку экземпляр LanguageDictionary создается с величиной переменной, они будут равны. Это использует Telerik.OpenAccess и MSSQL как уровень БД, поэтому я предполагаю, что проблема возникает. Может ли кто-нибудь сказать мне, есть ли что-то, что мне не хватает, и как правильно сравнивать эти значения.
EDIT: значения тика различны, но я не знаю, почему, поскольку оба они происходят из той же переменной, которую я назначаю только один раз.
Вы уверены, что даты идентичны? При сравнении будет учитываться количество часов/минут/секунд/миллисекунд. – Oded
Это то, что значения тика различны, но я не уверен, почему, поскольку они оба происходят из той же переменной createdDate. – Ash
System.DateTime – Ash