Bonjour à tous,
Je me lance petit à petit dans le développement d'un service web WCF Data Service. J'ai utilisé le framework Entity pour les accès à la base de données et un client Silverlight.
J'ai suivi les tutoriels qu'on peut trouver dans MSDN (ici) et je suis un peu bloqué sur le How To qui permet de diffuser une image via un flux à partir du service web.
Voici comment est déclaré mon service de données:
Voici donc l'erreur que l'obtiens lorsque j'exécute mon client Silverlight:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 public class Northwind : DataService<NorthwindEntities>, IServiceProvider { // Cette méthode n'est appelée qu'une seule fois pour initialiser les stratégies au niveau des services. public static void InitializeService(DataServiceConfiguration config) { config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead | EntitySetRights.WriteMerge | EntitySetRights.WriteReplace); config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead | EntitySetRights.AllWrite); config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead); config.SetEntitySetAccessRule("Products", EntitySetRights.AllRead | EntitySetRights.WriteReplace); config.SetEntitySetAccessRule("Employees", EntitySetRights.AllRead | EntitySetRights.WriteMerge | EntitySetRights.WriteReplace); config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; config.SetEntitySetPageSize("Orders", 2); config.SetEntitySetPageSize("Order_Details", 2); } public object GetService(Type serviceType) { if (serviceType == typeof(IDataServiceStreamProvider)) { NorthwindStreamProvider provider = new NorthwindStreamProvider(this.CurrentDataSource); this.ProcessingPipeline.ProcessingChangeset += new EventHandler<EventArgs>(provider.SaveStreamToDatabase); return provider; } return null; } }
J'ai constaté deux choses:Cette opération nécessite que l'entité spécifiée représente une entrée de lien média (Media Link Entry). Nom du paramètre : entity.
- Lorsque je définis l'attribut m:HasStream="true" dans le XML de mon modèle d'entités, le service me renvoie une erreur quand je tente d'accéder à mon entité (le namespace a bien été ajouté au préalable). Par contre, quand j'ajoute l'attribut [HasStream] à la classe représentant mon entité, je ne reçois pas de message d'erreur.
- Quel que soit le type d'appel au web service, la méthode GetService renvoie toujours null.
Je vois bien que le problème vient de l'attribut HasStream mais je ne vois pas bien comment le solutionner.
Merci d'avance pour votre aide.
Partager