我正在尝试使用IMapper插入具有可空类型的POCO(如DateTime?LastAccessed),但是获得了一个异常说明:
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)
表的主键(一个id)有一个值,它不是可以为空的类型(当然)..
为什么我不能插入指定我需要的所有列?
答案 0 :(得分:2)
首先,Cassandra并没有很好地处理空值。插入空值实际上会为该列创建一个逻辑删除。因此,如果可能的话,最好避免这样做。
其次,驱动程序文档的CQL data types to C# types部分与DateTime
(更不用说DateTime?
)不匹配。你想把它映射到卡桑德拉的时间戳吗?如果是这样,您将需要使用DateTimeOffset
类型,并且它不能为空。