查询列表中的记录<frozen <udt>&gt;

时间:2018-04-16 15:35:08

标签: c# cassandra cqlsh user-defined-types

我尝试使用WHERE子句查询记录,但Datastax和cassandra网站没有我想要做的信息。我想查询一个列为 list<frozen<phone>> 名为phones的列的记录。所以I.m使用cqlsh来查询它,但我找不到合适的文档或关键字。

这是我创建的UDT 创建类型casstestrun.phone(单元号文本,传真号码文本,文本文本);

这是我创建的表格

create table casstestrun.customer (cid uuid, cname text, phones list<frozen<phone>>);

所以,我的问题是如何从list<frozen<udt>>查询记录?

就像这样来自casstestrun.customer的select *,其中phones.celnumber =&#39; 222-222-2222&#39;;

1 个答案:

答案 0 :(得分:0)

有关如何处理user-defined types (UDT) in the documentation的信息。

您应该在UDT和C#类之间创建一次映射。

session.UserDefinedTypes.Define(
   UdtMap.For<Phone>()
);

然后,您可以检索和更新包含phone值的行:

var row = session.Execute(statement).First();
var phones = row.GetValue<IEnumerable<Phone>>("phones");