首页 > 解决方案 > Couchbase named parameters for buckets

问题描述

I'm trying to add a named parameter to fill in for my bucket name but I'm unable to get it working.

  var query = new QueryRequest()
    .Statement("SELECT b.*, META(b).id FROM $bucketName b WHERE b.type = 'Board' AND b.environment = $environment")
                .AddNamedParameter("$bucketName", _bucketName)
                .AddNamedParameter("$environment", _environment);

  query.ScanConsistency(ScanConsistency.RequestPlus);

  var result = _bucket.Query<Board>(query);

The following works correctly:

  var query = new QueryRequest()
    .Statement("SELECT b.*, META(b).id FROM `travel-sample` b WHERE b.type = 'Board' AND b.environment = $environment")
                .AddNamedParameter("$environment", _environment);

EDIT: this also doesn't work

.AddNamedParameter("$bucketName", $"`{_bucketName}`")

标签: .netasp.net-corecouchbase

解决方案


我认为您不能为存储桶名称使用参数(很高兴被证明是错误的)。我在这些场景中所做的是使用存储桶对象本身来获取名称。喜欢:

var n1ql = $"SELECT t.* FROM `{_bucket.Name}` t LIMIT 10";

推荐阅读