In my Silverlight app, after creating ADO.NET Entity Data Model and WCF RIA Services Domain Service Class, in a corresponding ProductService class I have a query operation that returns a collection of Product entities to the client, as follows:
public IQueryable<Product> GetProducts()
{
return this.ObjectContext.Products;
}
Now I'm trying to read it in the client Silverlight app and load results to an ObservableCollection:
ProductContext pcontext = new ProductContext();
ObservableCollection<Prod> prAvs = pcontext.GetProductsQuery();
But getting an error:
Cannot implicitly convert type System.ServiceModel.DomainServices.Client.EntityQuery<MyTestApp.Web.Product>
to System.Collections.ObjectModel.ObservableCollection<MyTestApp.Prod>
How could I fix that issue?
You should be using the client-side Products class generated for you by RIA services, not another class you define yourself.
e.g you should have a collection of MyTestApp.Web.Product, not of MyTestApp.Prod objects.
You will find the generated domain context in a hidden Generated_Code folder in your client project. Within that will be a MyTestApp.Web.g.cs file containing the client side context and any data objects (like MyTestApp.Web.Product).
You can't just cast a query to a collection.
You need to use the query to load an entity change-set instead.
var loadOperation = pcontext.Load(pcontext.GetProductsQuery());
The result (when the load completes) is an entity collection in the returned loadOperation object. You can use the entity collection immediately, but it is initially empty.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With