2

次のデータベースドキュメントを検討します。

ここに画像の説明を入力してください

強調表示されたフィールド「Roles」を配列するために要素をプッシュする必要があります。

以下のコードを試しましたが、成功しませんでした。「SelectWhere」の代わりにどのコマンドを使用するかを知る必要があります...

patches.Add(new ScriptedPatchCommandData
                {
                    Key = "Users/" + (mp.EnableChangeUserName ? user.ProviderUserKey : username),
                    Patch = new ScriptedPatchRequest
                    {
                        Script = @"
                                var app = this.Applications.SelectWhere(function(application){ 
                                    return application.Key == appKey;
                                });
                                if(app != null) { app.Roles.PushAll(roles) }",
                        Values = { { "appKey", mp.ApplicationKey }, {"roles", roleNames} }
                    }
                });

提案?

4

1 に答える 1

1

これでうまくいくはずです:

for (var i = 0; i < this.Applications.length; i++)
{
  var app = this.Applications[i];
  if (app.Key == appKey)
  {
    app.Roles = app.Roles.concat(roles);
  }
}

Raven Management Studioでテストする場合、[パラメーター]ウィンドウで配列を表すことができないようです。そのため、配列を文字列として入力["foo","bar"]し、スクリプトに1つの小さな変更を加える必要がありました。

...   .concat(eval(roles))
于 2013-01-22T17:38:13.820 に答える