Как вернуть список <int>из доменного сервиса - PullRequest
1 голос
/ 29 ноября 2011

Здравствуйте, ребята, я использую службы WCF RIA. У меня есть доменные службы, где я написал этот метод

public List<int> GetActionIDs() 
    {
        return (from d in ObjectContext.actions select d.id).ToList();
    }

Как я могу получить этот список на стороне клиента? Это не работает:

List<int> = db.GetActionIDs();

есть предложения?

Ответы [ 2 ]

1 голос
/ 30 ноября 2011

Прежде всего, вам следует прочитать руководство по RIA Services , поскольку вы не понимаете, что вызовы служб в Silverlight являются асинхронными.

В вашем случае, вы должны

Добавьте InvokeAttribute к вашей работе в сервисе:

[Invoke]
public List<int> GetActionIDs() 
{
    return (from d in ObjectContext.actions select d.id).ToList();
}

Тогда все вызовы DomainContext являются асинхронными, поэтому вы получите результаты в обратном вызове:

db.GetActionIDs(operation =>
                {
                  //TODO: check the operation object for errors or cancellation

                  var ids = operation.Value; // here's your value

                  //TODO: add the code that performs further actions
                }
                , null);
0 голосов
/ 30 ноября 2011

внутри DomainSrvice

[Query]    
public List<Action> GetActionIDs()     
 {         
   List<Action> result =  (  
                           from a in ObjectContext.actions                                     
                            select new action                                   
                             {                        
                                ID = a.ID
                             }
                        ).ToList(); 
   return result ;
 }

Silverlight

DomainService1 DS = new  DomainService1();
LoadOperation<Action> LoadOp = Ds.Load(Ds.GetActionIDsQuery());

LoadOperation.Completed += new EventHandler((s,e)=>{
   foreach (Action item in LoadOp.Entities)
   {
   }
});
...