Cassandra C#驱动程序UDT Mapping - Int to Enum

时间:2017-03-28 18:59:48

标签: c# enums cassandra datastax user-defined-types

我有枚举类型:

public enum SomeType
{
    Type1,
    Type2,
    Type3
}

我希望自动将Cassandra int类型映射到c#enum。我试图将其定义为:

session.UserDefinedTypes.Define(
            UdtMap.For<DefinedType>()
            .Map(a => a.Type, "type"));
// where type of a.Type is SomeType

然而它会抛出&#34; InvalidTypeException&#34;与消息&#34;类型类型Int32不能分配给SomeType&#34;

是否可以自动映射?我已经看到了一些表列映射到可枚举的示例,但从未见过任何UDT

1 个答案:

答案 0 :(得分:1)

Cassandra尚未支持udt中的枚举类型,

或者,您可以按如下方式解决问题

public enum SomeType
{
Type1=0,
Type2=1,
Type3=2
}

public SomeType SomeTypeProperty;

public int SomeTypePropertyMapForCassandra
{
 get
 {
 return SomeTypePropertyMapForCassandra;
 }
 set
 {
 this.SomeTypeProperty= (SomeType)value;
 }
}