Результат запроса нельзя перечислить более одного раза

Я использую структуру сущностей (ef) и получаю следующую ошибку:

«Результат запроса нельзя перечислить более одного раза. ".

У меня есть класс репозитория, содержащий контекст данных ef. Затем у меня есть класс контроллера (не путать с контроллерами MVC), который содержит экземпляр репозитория. Пока все хорошо ... У меня есть метод поиска на контроллере, который должен возвращать массив RadComboBoxItemData , который используется для заполнения элемента управления Telerik RadComboBox.

public RadComboBoxItemData[] Search(int id, string searchText)
{
    var query = context.Search(id, searchText);
    List<RadComboBoxItemData> result = new List<RadComboBoxItemData>();
    foreach (var item in query)
    {
        RadComboBoxItemData itemData = new RadComboBoxItemData();
        itemData.Text = ""; // assign some text here..;
        itemData.Value = ""; /*assign some value here..*/
        result.Add(itemData);
    }

    return result.ToArray();
}

Когда я отлаживаю свой код, Я могу войти в цикл foreach, но затем получаю сообщение об ошибке:

Исключение типа 'System.InvalidOperationException' произошло в System.Data.Entity.dll, но не обрабатывалась в коде пользователя

Дополнительная информация: результат запрос не может быть перечислен более чем один раз.

Моя сущность использует функцию импорта из существующей сохраненной процедуры.

// EF repository method calling the function imported method on the data context.
public IEnumerable<SearchItem> Search(int id, string searchText)
{
    return this.entityContext.Search(id, searchText);
}

Функция import Search вызывает сохраненную последовательность для возврата коллекции SearchItem .

У меня такое ощущение, что цикл foreach не может повторяться из-за чего-то с ef.

67
задан Chev 19 April 2011 в 22:45
поделиться