2016-02-16 3 views
0

Нужна помощь с Neo4Client, если я бегу свободно Cypher запрос и использовать .Return(node => node.As<Dictionary<string,string>>()) возвращает оба правильные ключи и значения, хотя и с потерей типа данных, но если я использую .Return(node => node.As<Dictionary<string,object>>()) возвращает словарь с ключами , но нет значений, которые я могу видеть. Отладчик показывает {object}, но я не могу его отличить - поле, которое я знаю, является строкой, возвращает значение null при кастинге - obj as string. То же самое происходит с Dictionary<<string, dynamic>>. Что это за объект и как я могу вернуть свой словарь обратно из Neo4j с помощью клиента?Neo4JClient не может получить словарь со значениями как объекты

+0

Проблема заключается в том, что когда вы делаете '.As >', вы указываете Neo4jClient десериализовать значения для объектов - как только вы это сделаете, у вас нет * строк *, у вас есть только объекты , Возможно, стоит посмотреть, что вы можете сделать с помощью 'dynamic', но помимо этого я бы посмотрел на использование общего типа для ваших значений (даже если это всего лишь оболочка для свойств разных типов). –

+0

Извините, разметка не сработала в первый раз. Динамические отбрасывания объектов. Я могу разобрать строки, это просто супер очень неэффективно. У вас было что-то еще для обертки? – Dmitriy

ответ

0

Запись результата беседы Gitter и обсуждение here.

Так это вниз к дороге Neo4jClient десериализует объекты обратно, а именно OGM (OG ▪ Таблица Раф M apping) сторона вещей. В основном это относится к Dictionary<string, object> в заказе способа, который в конечном счете Activatesnew object экземпляра, поэтому object сек фактически будучи object экземпляров, а не string или эквивалента.

В этом нет никакого способа (в настоящее время) без изменения существенной части вещей.

Смежные вопросы