2010-07-05 4 views
2

J'essaye de télécharger des images (tableaux d'octets) du client vers une base de données - cela fonctionne comme un charme. Le fait est que j'aimerais montrer la progression de cette opération à l'utilisateur, mais l'objet DomainDataSource ne fournit aucun type d'événement de progression. Si j'appelle SubmitChanges pour chaque entité, il commence à se chevaucher d'une manière ou d'une autre et les choses se compliquent, ce qui suit ne fonctionne pas.Ria Services: Synchrone DomainDataSource.SubmitChanges()

foreach(T entity in entities) 
{ 
    myDomainDataSource.DataView.Add(entity); 
    myDomainDataSource.SubmitChanges(); 
} 

Quelqu'un a eu une idée comment montrer à l'utilisateur la progression du téléchargement de ces images?

Répondre

1

Vous aurez besoin de télécharger vos images en morceaux ... ce que vous devez souvent faire de toute façon, car une seule image peut exécuter la limite de la demande pour la taille maximale de la requête. Une fois que vous utilisez une approche de téléchargement groupé, vous pouvez afficher la progression en fonction de la quantité de l'image qui a été téléchargée.

J'ai démontré cela à TechEd Australia ... alors que c'était en 2007, et le code est vieux, il devrait largement fonctionner, ou servir de point de départ. L'exemple a montré comment vous pouvez utiliser Silverlight pour augmenter ajax pour effectuer un téléchargement multi-fichiers. Voir http://www.nikhilk.net/Entry.aspx?id=169 pour une description des échantillons. Peut-être que cela aide ...

+0

Merci pour l'exemple - le problème est, je voudrais utiliser l'approche de service de domaine - donc je devrais ajouter (au datacontext) et soumettre plus tard l'ensemble de l'entité image (essentiellement un objet qui représente une table de base de données contenant un nom d'image, un type d'image, des données d'image et quelques autres propriétés/colonnes). –

+0

Utilisez une méthode Invoke sur un DomainService. Le téléchargement d'un flux d'octets ne se prête pas bien à une méthode CRUD insert/update. –