На прошлой неделе я отчаянно пытался выяснить, в чем состоит мое разъединение, в том, что я не могу обернуться вокруг RIA Services. Я тщательно следовал примеру, показанному в учебном видео Microsoft , и у меня все еще есть проблемы. Может быть, я пытаюсь сделать то, что вы не можете, но, по всей вероятности, я просто делаю это неправильно.
В обучении они используют код, очень похожий на:
IVCContext ctx = new IVCContext();
MyDataGrid.ItemsSource = ctx.ChairOptions;
ctx.Load(ctx.GetChairOptionsQuery());
Заполняет DataGrid информацией, которую находит в таблице ChairOptions.
Но я хотел бы иметь прямой доступ к результатам, не привязывая их к DataGrid или любому другому элементу управления в этом отношении. Я хотел бы просто получить набор результатов, а затем работать с ним, как мне угодно.
Более конкретно, я хотел бы взглянуть на его свойства (имя, стоимость и т. Д.) И отношения (группа, подгруппа), которые прикреплены к нему в модели, чтобы я мог выполнять специальные действия и изменять содержимое. контроля. Но кажется, что независимо от того, что я пытаюсь, я получаю пустой набор результатов.
Я пробовал что-то вроде:
LocalContext ctx = new LocalContext();
var ResultSet = ctx.ChairOptions;
ctx.Load(ctx.GetChairOptionsQuery());
Но ResultSet всегда пуст.
Мне кажется, что одна из причин, по которой я не могу понять это, заключается в том, что я не могу точно определить, что происходит в задании в строке # 2, и что на самом деле делает функция Load () строка № 3. В первом примере это просто работает автоматически, но мне бы очень хотелось понять, что происходит.
Заранее спасибо за любую помощь или ссылки.
Edit:
Сегодня утром меня просто поразило, когда я проснулся, в чем может быть проблема. Хотя код делает его очень простым и процедурным, вызов Load на самом деле асинхронный, верно?
Если это правильно, то возникает вопрос: откуда мне знать, когда он закончится, чтобы я мог оперировать результатами?
Edit:
Дополнительные поиски с этой новой информацией привели меня к этой информации о прикреплении обратных вызовов к отдельным операциям загрузки. Но класс, предоставленный в этой ссылке, использует объект с именем LoadOperation, и хотя кажется, что LoadOperation находится в пространстве имен System.Windows.Ria, добавление его использования не позволяет Visual Studio распознавать ссылки на LoadOperation как объект, поэтому Я не могу построить проект с этим классом.