我想使用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个以上的联系人。
您可以使用Attribute运行Amazon simpleDB查询。
select <attribute_name> from <domain_name>
AmazonSimpleDB将只返回具有此属性的项目,作为响应,即使项目具有其他属性,您也只能获得此属性。