试图找出从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"))