Я новичок в RavenDB и ищу рекомендации по правильному способу хранения свободно напечатанных данных.У меня есть тип со списком пар ключ / значение.Тип свойства value не известен во время разработки.
public class DescriptiveValue
{
public string Key { get; set; }
public object Value { get; set; }
}
Когда я запрашиваю DescriptiveValue, который был сохранен со значением DateTime или Guid, десериализованным типом данных является строка.Числовые значения, похоже, сохраняют свои типы данных.
Существует ли элегантное решение для сохранения типа данных, или я должен просто хранить все значения в виде строк?Если я пойду по строковому маршруту, будет ли это ограничивать меня, когда я позже захочу отсортировать и отфильтровать эти данные (вероятно, по индексам?)
Я надеюсь, что это обычная проблема, которую легко решить, и я просто думаю,о проблеме неправильно.Ваша помощь очень ценится!
ОБНОВЛЕНИЕ : Результат этого модульного теста: Assert.AreEqual не удалось.Ожидается: <02.02.2012 10:00:01 (System.DateTime)>.Факт: <2012-02-02T10: 00: 01.9047999 (System.String)>.
[TestMethod]
public void Store_WithDateTime_IsPersistedCorrectly()
{
AssertValueIsPersisted<DateTime>(DateTime.Now);
}
private void AssertValueIsPersisted<T>(T value)
{
ObjectValuedAttribute expected = new ObjectValuedAttribute() { Value = value };
using (var session = this.NewSession())
{
session.Store(expected);
session.SaveChanges();
}
TestDataFactory.ResetRavenDbConnection();
using (var session = this.NewSession())
{
ObjectValuedAttribute actual = session.Query<ObjectValuedAttribute>().Single();
Assert.AreEqual(expected.Value, actual.Value);
}
}
Я ожидаю, что фактическим будет значение DateTime.