как получить из веб-сервиса список объектов из запроса linq? - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть веб-сервис, который использует linq to sql для заполнения списка объектов из результата:

linqDBContext db = new linqDBContext();

public List<lut_flavorName> GetFlavors()
{
   List<lut_flavorName> results =
        (from a in db.lut_flavorNames
         select a).ToList();

   return results;
}

в завершенном событии, я пытаюсь получить это в наблюдаемую коллекцию (или даже типичный список в этом отношении)

client.GetFlavorsCompleted += delegate(object s, GetFlavorsCompletedEventArgs es)
{
    ObservableCollection<Object> list = es.Result;

    //more code
};

Ошибка, которую я получаю, заключается в том, что я не могу безразлично преобразовать ArrayOfXElement в ObservableCollection

Я пробовал кастовать, но он все еще говорит, что не может конвертировать. Я предполагаю, что вместо получения типа объекта "lut_flavorNames" я получаю ArrayOfXElement, потому что проект silverlight не имеет ссылки на контекст данных. Как мне это решить? Проблема вызвана тем, что я использую linq-to-sql вместо linq-to-entity или есть способ заставить это работать?

1 Ответ

1 голос
/ 21 ноября 2011

Ваша служба возвращает List<lut_flavorName>, который прокси-сервер службы обрабатывает как lut_flavorName[], а не ObservableCollection, поэтому, конечно, он не будет разыгрываться.

Почему бы не создать новый ObservableCollection идобавьте список с помощью этого конструктора ?

например,

client.GetFlavorsCompleted += delegate(object s, GetFlavorsCompletedEventArgs es)
{
    ObservableCollection<Object> list = new ObservableCollection<Object>(es.Result);

    //more code
};

Примечание: большинству служб действительно требуется только вернуть IQuerable (позволяет выполнять пейджинг на стороне сервера) илиIEnumerable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...