【问题标题】:Cassandra C# driver UDT Mapping - Int to EnumCassandra C# 驱动程序 UDT 映射 - Int 到 Enum
【发布时间】:2017-08-22 00:17:25
【问题描述】:

我有枚举类型:

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

但是它会抛出“InvalidTypeException”消息“类型类型 Int32 不能分配给 SomeType”

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

【问题讨论】:

  • 确保将整数值也分配给您的枚举值。否则,您将来可能会得到意想不到的结果(或者当有人添加值时)。
  • 是的,我知道并且我已经分配了它。这是一个简单的例子。不管怎样,谢谢你的建议
  • 有什么消息吗?解决方案成立?

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


【解决方案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;
 }
}

【讨论】:

    猜你喜欢
    • 2016-01-31
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 2017-03-24
    • 2020-08-01
    • 1970-01-01
    • 2017-06-27
    相关资源
    最近更新 更多