Получить атрибут SimpleDB, не просматривая все атрибуты для элемента
Я хотел бы проверить атрибут с использованием C# и SimpleDB без необходимости перебирать все атрибуты для конкретного элемента.
Например, если у меня есть мой домен: "Мой домен", и у меня есть три атрибута для элемента (элемент: george@george.com).
Три атрибута:
название
Зарегистрироваться
контакты
Так, например, это мои данные:
MyDomain (домен)
george@george.com (предмет)
Джордж Доу (атрибут)
3-1-12 (атрибут)
mike@mike.com (атрибут)
Проблема, с которой я столкнулся, заключается в том, что мой код перебирает все 3 атрибута в элементе george@george.com.
Например; когда я запускаю свой код, вывод:
Контакты не найдены
Контакты не найдены
Контакт: mike@mike.com
потому что мой код перебирает все 3 атрибута для элемента george@george.com.
Я хочу, чтобы мой код C# проверял только атрибут "Контакты" и НЕ просматривал все атрибуты элемента 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# о том, как мне это сделать? Благодарю.
РЕДАКТИРОВАТЬ: Я все еще хочу перебрать все "Контакты" в атрибуте "Контакты". Я просто не хочу перебирать все атрибуты, которые не имеют названия "Контакты". Атрибут "Контакты" может содержать более одного контакта, и мне все еще нужно получить все из этого атрибута.
Эта строка кода от Кена ниже:
строковое значение = item.Attribute.First(a => a.Name == "Контакт"). Значение
останавливает зацикливание различных атрибутов, но возвращает только 1 контакт из атрибута "Контакты", даже если в атрибуте "Контакты" хранится более 1 контакта.
1 ответ
Вы можете запустить Amazon simpleDB Query с атрибутом.
select <attribute_name> from <domain_name>
А Amazon SimpleDB будет возвращать только элементы, имеющие этот атрибут, и в ответ вы получите только этот атрибут, даже если элементы имеют другие атрибуты.