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



我有枚举类型:

public enum SomeType
{
    Type1,
    Type2,
    Type3
}

我想自动将 Cassandra int 类型映射到 c# 枚举。我试图像这样定义它:

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

但是它会抛出"无效类型异常",并显示消息"类型类型 Int32 不可分配给 SomeType">

可以自动映射吗?我见过一些将表列映射到可枚举的示例,但从未见过任何 UDT

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;
 }
}

最新更新