У меня есть запрос в методе, поэтому я могу вызвать i из нескольких мест, например:
private object GetData(ProfilePropertyDefinition lProfileProperty)
{
return from r in gServiceContext.CreateQuery("opportunity")
join c in gServiceContext.CreateQuery("contact") on ((EntityReference)r["new_contact"]).Id equals c["contactid"] into opp
from o in opp.DefaultIfEmpty()
where ((EntityReference)r["new_channelpartner"]).Id.Equals(lProfileProperty.PropertyValue) && ((OptionSetValue)r["new_leadstatus"]).Equals("100000002")
select new
{
OpportunityId = !r.Contains("opportunityid") ? string.Empty : r["opportunityid"],
CustomerId = !r.Contains("customerid") ? string.Empty : ((EntityReference)r["customerid"]).Name,
Priority = !r.Contains("opportunityratingcode") ? string.Empty : r.FormattedValues["opportunityratingcode"],
ContactName = !r.Contains("new_contact") ? string.Empty : ((EntityReference)r["new_contact"]).Name,
};
}
Затем в другом методе я вызываю метод запроса примерно так и пытаюсь пройти через него:
var exportData = GetData(lProfileProperty);
foreach (var lItem in exportData)
{
}
Затем в том же методе, когда я пытаюсь перебрать результаты, я получаю эту ошибку на foreach:
оператор foreach не может работать с переменными типа «объект», поскольку «объект» не содержит общедоступного определения для «GetEnumerator»
Любая идея, что вызвало бы и как это исправить, я в тупике.
EDIT:
Прислушался к совету Джона и, по большей части, похоже, работает. Но когда я вызываю метод вроде: GetData<lProfileProperty.PropertyValue>;
Он говорит, что lProfileProperty не может быть найден. Но это там. Есть идеи?
РЕДАКТИРОВАТЬ 2: У меня есть все из примера Джона на месте. Я получаю одну ошибку: на foreach (GridDataItem lItem in exportData)
написано «Ошибка 67: невозможно преобразовать тип« DotNetNuke.Modules.CPCLeadShare.View.Foo »в« Telerik.Web.UI.GridDataItem ». Есть идеи, как это исправить? Мне нужно иметь возможность использовать DGridDataItem, чтобы я мог получить доступ к "Ячейкам".