获取SimpleDB属性,而不遍历项目的所有属性

本文关键字:属性 项目 遍历 SimpleDB 获取 | 更新日期: 2023-09-27 18:26:23

我想使用C#和SimpleDB检查一个属性,而不必遍历特定项的所有属性。

例如,如果我有我的域:"MyDomain",并且我有一个项目的三个属性(该项目是:george@george.com)。

三个属性是:

名称
注册
联系人


例如,这是我的数据:

MyDomain(域)
 nbsp;george@george.com(项)
 nbsp nbsp;George Doe(属性)
 nbsp nbsp;3-1-12(属性)
 nbsp nbsp;mike@mike.com(属性)



我遇到的问题是,我的代码将遍历george@george.com项目
例如;当我运行代码时,输出是:

找不到联系人
找不到联系人
联系人:mike@mike.com

因为我的代码循环通过george@george.com项目

我想让我的C#代码只检查"Contacts"属性,而不是循环遍历george@george.com项目

有人能教我怎么做吗?

AmazonSimpleDB sdb = AWSClientFactory.CreateAmazonSimpleDBClient();
            String selectExpression = "Select * From MyDomain Where Email = 'george@george.com'";
            SelectRequest selectRequestAction =
                new SelectRequest().WithSelectExpression(selectExpression);
            SelectResponse selectResponse = sdb.Select(selectRequestAction);
            if (selectResponse.IsSetSelectResult())
            {
                SelectResult selectResult = selectResponse.SelectResult;
                foreach (Item item in selectResult.Item)
                {
                    foreach (Amazon.SimpleDB.Model.Attribute attribute in item.Attribute)
                    {    
                        if (attribute.IsSetName())
                        {
                            if (attribute.Name == "Contact")
                            {
                                if (attribute.IsSetValue())
                                {
                                    Console.WriteLine("Contact: {0}", attribute.Value);
                                }
                            }
                            else
                            {
                                Console.WriteLine("No Contacts Found");
                            }   
                        }
                    }
                }
            }


我希望它直接检查"联系人"属性,看看是否有它的值,而不是遍历所有属性。



有人能给我看一个C#代码的例子,说明我将如何实现这一点吗?谢谢


编辑:我仍然想循环浏览"联系人"属性中的所有"联系人"。我只是不想循环浏览所有没有"联系人"名称的属性。"联系人"属性可以容纳多个联系人,我仍然需要从该属性中获取所有联系人。

Ken下面的这行代码:

string value=item。属性。第一个(a=>a.名称="联系人")。值

停止不同属性的循环,但它只从"联系人"属性返回1个联系人,即使"联系人"特性中存储了1个以上的联系人。

获取SimpleDB属性,而不遍历项目的所有属性

您可以使用Attribute运行Amazon simpleDB查询。

select <attribute_name> from <domain_name>

AmazonSimpleDB将只返回具有此属性的项目,作为响应,即使项目具有其他属性,您也只能获得此属性。