PL совершенно верно. На самом деле не существует шаблонов, которые Prism поддерживает, несовместимых с ADO.NET Data Services. Есть только несколько вещей, которые вы должны знать.
Вот небольшой образец. Это немного сложно ... событие complete иногда запускается за пределами потока пользовательского интерфейса, поэтому вам нужно обработать его с диспетчером (по крайней мере, в SL2, который вы сделали):
public class MyViewModel : BaseViewModel
{
public Customer CustomerResult
{
...
}
NorthwindEntities svcContext = null;
public MyViewModel()
{
svcContext =
new NorthwindEntities(new Uri("Northwind.svc", UriKind.Relative));
DataServiceQuery<Customers> query =
svcContext.Customers.Expand("Orders");
// Begin the query execution.
query.BeginExecute(WorkComplete, query);
}
private void WorkComplete(IAsyncResult result)
{
DataServiceQuery<Customers> query =
result.AsyncState as DataServiceQuery<Customers>;
Customers returnedCustomer =
query.EndExecute(result).FirstOrDefault();
//Execute with the dispatcher
Dispatcher.CurrentDispatcher.BeginInvoke( () =>
{
CustomerResult = returnedCustomer;
});
}
}
Конечно, здесь нет обработки исключений, но, надеюсь, вы получите картину.