2015-06-16 3 views
-1

Я пытаюсь вставить ПОКО с обнуляемыми типами с использованием IMapper, но получаю исключение о том (как DateTime LastAccessed?):Cassandra Mapper: не может вставить обнуляемые типов

Nullable object must have a value. 

StackTrace является:

at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 
    at lambda_method(Closure , UserEntity`1) 
    at Cassandra.Mapping.Mapper.InsertIfNotExistsAsync[T](T poco, CqlQueryOptions queryOptions) 
    at Cassandra.Mapping.Mapper.InsertIfNotExists[T](T poco, CqlQueryOptions queryOptions) 
    ...(my function) 

первичный ключ таблицы (идентификатор) имеет значение, и это не обнуляемым типа (конечно) ..

Почему я не могу вставить с указанием всех столбцов, которые мне нужны?

ответ

2

Прежде всего, Кассандра плохо справляется с нулями. Вставка нулевого значения фактически создает надгробный камень для этого столбца. Поэтому лучше избегать этого, если это вообще возможно.

Во-вторых, CQL data types to C# types раздел документации для водителя не соответствует DateTime (не говоря уже о DateTime?). Вы пытаетесь сопоставить это с меткой времени в Кассандре? Если это так, вам нужно будет использовать тип DateTimeOffset, и он не может быть нулевым.

+0

относительно DateTime - я пропустил это как-то так спасибо за это. Во-вторых, я знал об ошибках. Вот почему я надеялся, что IMapper будет обрабатывать типы с нулевым значением. Думаю, мне просто нужно будет использовать основные инструкции для INSERT без указания столбцов, которые мне не нужны (несколько из них). – Droritos

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