Cassandra - 使用枚举从Map <int,int =“”>读取到Dictionary <type,int =“”>

时间:2017-08-09 10:55:08

标签: c# cassandra datastax

试图找出从cassandra表中读取的最佳/简单/有效方法,将cassandra表定义为c#DTO对象,这是一个定义了键的字典,它有一个枚举器。

通过在映射中使用WithDbType(),我想出了一种从int映射到枚举的方法。虽然,鉴于这是在字典中,但无法想出将其映射出来。

Cassandra设计:

CREATE TABLE IF NOT EXISTS mytable (
    id INT,
    name TEXT,
    my_dictionary MAP<INT, INT>,
    PRIMARY KEY (id)
);

DTO:

public class MyTableObject
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Dictionary<EnumType, int> MyDictionary { get; set; }
}

ENUM:

public enum EnumType
{
   None = 0,
   SelectionOne = 1
}

C#Driver Mapper:

For<>(MyTableObject)
    .TableName("my_table")
    .PartitionKey("id")
    .Column(u => u.Id, cm => cm.WithName("id"))
    .Column(u => u.Name, cm => cm.WithName("name"))
    .Column(u => u.MerchantId, cm => cm.WithName("merchant_id"))

    .Column(p => p.MyDictionary, cm => cm.WithName("my_dictionary"))

    .ExplicitColumns();
}

有关设置此行的任何帮助吗?

.Column(p => p.MyDictionary, cm => cm.WithName("my_dictionary"))

0 个答案:

没有答案