我想使用Datastax C#Driver(.Net Framework 4.6.1,Datastax C#Driver 3.0.8)在Cassandra中保存和检索POCO对象
示例:
public enum DocumentState
{
New = 0,
Approved = 1,
Rejected = 2
}
public class DocumentReadModel
{
public Guid DocumentId { get; set; }
public DocumentState State { get; set; }
}
在Cassandra中保留此对象的最佳方法是什么?
我的方法似乎不起作用。
现在我试图在Cassandra中将其保存为int:
create table if not exists documentreadmodel (
documentid uuid PRIMARY KEY,
state int);
还使用Datastax驱动程序提供的映射配置,代码如下:
MappingConfiguration.Global.Define(
new Map<DocumentReadModel>()
.TableName("documentreadmodel")
.PartitionKey(o => o.MerchantId)
.Column(o => o.State, c => c.WithName("state").WithDbType<int>()));
但我仍然有例外:
Cassandra.InvalidTypeException:
Unknown Cassandra target type for CLR type ValueObjects.DocumentState
我应该在Cassandra中使用另一种类型的int吗? 以不同方式配置驱动程序?
答案 0 :(得分:0)
我通过更新全局配置以使用For
找到了解决方案我使用的是.NET 4.5.2 CassandraCSharpDriver 3.3.2
尝试更新您的配置以使用&#34;对于&#34;
MappingConfiguration.Global.Define(
For<DocumentReadModel>()
.TableName("documentreadmodel")
.PartitionKey(o => o.MerchantId)
.Column(o => o.State, c => c.WithName("state").WithDbType<int>()));