2010-03-15 15 views
0

Helo!RIA Service - sans base de données?

Je dois écrire un service RIA pour appeler les services Web Java à partir de l'application Silverlight 3.0. Je teste comment les choses fonctionne et dans mon application Web je une classe MesDonnées, qui dispose de 2 propriétés (int ID, chaîne texte):

namespace SilverlightApplication1.Web 
{ 
    public class MyData 
    { 
     [Key] 
     public int ID { get; set; } 

     public string Text { get; set; } 
    } 
} 

Alors j'ai écrit DomainService simple:

[EnableClientAccess()] 
public class MyService : DomainService 
    { 
     public IQueryable<MyData> GetMyData(string Url) 
     { 
        // here I will call my WebService 

      List<MyData> result = new List<MyData>(); 
      result.Add(new MyData { ID = 1, Text = Url }); 
      return result.AsQueryable(); 
     } 
    } 
} 

Comment puis-je obtenir des données dans mon application SL? Maintenant, j'ai ceci:

espace de noms

SilverlightApplication1 { public partial class MainPage: UserControl { MainPage public() { InitializeComponent(); MyContext context = new MyContext(); }} }

J'ai appelé et charge mais nothink worsk (exceptions, ou ...) nulls

j'avais Invoke annotation mais MyData n'est pas TEntity et je ne peux pas utiliser des chaînes ou d'autres types simples aussi bien ...:/ Je lis et lis des messages et rien ne fonctionne comme il se doit ..

Toute aide serait vraiment appréciée.

Merci!

Répondre

0

Votre code semble bon sur le serveur. Vous souhaiterez déplacer le contexte en dehors du constructeur MainPage et ajouter un rappel à votre opération de chargement. Assurez-vous également d'ajouter le System.ServiceModel.DomainServices.Client en utilisant la page (pour LoadOperation).

using System.Linq; 
using System.ServiceModel.DomainServices.Client; 
using System.Windows.Controls; 
using SilverlightApplication1.Web; 


namespace SilverlightApplication1 
{ 
    public partial class MainPage : UserControl 
    { 
     MyContext context = new MyContext(); 
     public MainPage() 
     { 
      InitializeComponent(); 

      context.Load(context.GetMyDataQuery("url"), loadCallback, null); 
     } 

     void loadCallback(LoadOperation op) 
     { 
      MyData d = context.MyDatas.First(); 
     } 
    } 
}