我知道对于一个典型的 _mapper.SingleOrDefault<SomeType>(new Cql("?", ex))
我可以为sometype创建Map并指定keybase。现在我想做:
var result = _mapper.SingleOrDefault<string>(new Cql("select json * from tablename where varname=?", arg));
或
var result = CassandraRetryHelper.SingleWithRemoteRetryAsync<string>(new Cql("select json * from tablename where varname=?", arg), _mapper);
如果我在表名之前硬编码keyspace名称,这两种方法都会得到所需的结果,但是我希望像第一个示例那样预先指定keyspace。有什么办法吗?谢谢您!
1条答案
按热度按时间ha5z0ras1#
对于那个用例,你需要Map器吗?如果您只想运行一个查询而不涉及任何Map,那么可以使用
session.ExecuteAsync(query)
.在任何情况下,请尝试在生成器级别设置键空间,即。,
builder.WithDefaultKeyspace()
在构建集群/会话对象时。如果您使用多个键空间,那么恐怕您必须执行以下操作
$"select json * from {keyspace}.tablename where varname=?"
. 使用这种方法,您将不会使用由c*验证的查询参数,因此请确保清除keyspace
变量。