Я хочу хранить некоторые данные в RavenDb, но в RavenDb хранятся только пустые объекты.

Это мой код:

using (var uow = new ReadOnlyUnitOfWork(new AistoDbContext()))
{
    result = uow.Repository<Projekt>().GetProjectStammdaten().ToList();

    using (IDocumentSession session = _store.OpenSession())
    {
        foreach (var data in result)
        {
            session.Store(data);
            session.SaveChanges();
        }
    }
}

Результат имеет некоторые данные:

enter image description here

Но когда я смотрю в RavenDb Studio ничего, кроме индексов не хранятся:

enter image description here

У кого-нибудь есть подсказка?

1
Daniel 20 Мар 2017 в 07:54

2 ответа

Лучший ответ

Между тем мы нашли проблему и смогли ее решить!

Класс, который мы хотели бы сохранить в RavenDb, был украшен [DataContract] следующим образом:

[DataContract]
public class ProjektStammdaten
{
    public DateTime AeTerminStammhaus { get; set; }

    public DateTime? AeTerminTochter { get; set; }

Мы забыли добавить атрибут [DataMember] к свойствам, которые мы хотели бы сохранить в RavenDb

[DataContract]
public class ProjektStammdaten
{
    [DataMember]
    public DateTime AeTerminStammhaus { get; set; }

    [DataMember]
    public DateTime? AeTerminTochter { get; set; }

После определения класса мы смогли сохранить записи!

1
Daniel 21 Мар 2017 в 18:32

Наиболее вероятная причина в том, что ваш объект наследует от List<T> или IEnumerable<T>. Вы не можете сохранить их как объекты, если не напишите JsonConverter для них.

0
Ayende Rahien 20 Мар 2017 в 18:32