ふるすたっくえんじにあっぽい人の日記

ASP .NET MVC (C#)、.NET Framework、iOS (Objective-c) アプリ、Androidアプリ (Java)、AWS、たまにLAMPとかプロジェクトマネジメントあたりのお話

【C#】Google Cloud Datastoreで祖先のキーを指定して子エンティティを取得

なんかね、親エンティティのことを祖先って言うらしいよ。ancestoreですね。
このことを知らなかったおかげでハマりました。英語力ないorz

接続はこないだの記事参照で。リクエストのとこだけ。
【C#】コンソールアプリからGoogle Cloud Datastoreに接続 - チャラめがねdevの日記

            var queryBody = new RunQueryRequest
            {
                Query = new Query
                {
                    Kinds = new[] { new KindExpression { Name = "子エンティティのKind" } },
                    Filter = new Filter
                    {
                        PropertyFilter = new PropertyFilter
                        {
                            Property = new PropertyReference
                            {
                                Name = "__key__",
                            },
                            Operator = "HAS_ANCESTOR",
                            Value = new Value
                            {
                                KeyValue = new Key
                                {
                                    Path = new[]
                                    {
                                        new KeyPathElement
                                        {
                                            Kind = "親エンティティのKind",
                                            // 取得したい親エンティティのName or Idを指定。
                                        },
                                    },
                                },
                            },
                        },
                    },
                },
            };
            var request = new DatasetsResource.RunQueryRequest(datastoreService, queryBody, "データセットID");
            var result = request.Execute();