2010-05-19 6 views
1

je voudrais avoir les éléments suivants à traduire à VB 2010 (avec syntaxes avancées)Comment faire cela en VB 2010 (C# pour la conversion VB)


_domainContext.SubmitChanges(
    submitOperation => 
    { 
     _domainContext.Load<Customer>(
      _domainContext.GetCustomersQuery(), 
       LoadBehavior.RefreshCurrent, 
       loadOperation => 
       { 
       var results = _domainContext.Customers.Where(
         entity => !loadOperation.Entities.Contains(entity)).ToList(); 

       results.ForEach(enitity => _domainContext.Customers.Detach(entity)); 
       }, null); 
     }, null); 

J'ai réussi à obtenir ce qui précède avec d'autres moyens (mais ne pas utiliser des méthodes anonymes). Je voudrais voir toutes les syntaxes avancées disponibles dans VB 2010 à appliquer à ce qui précède.

Quelqu'un peut-il m'aider à ce sujet?

grâce

+0

juste pour apprendre. L'original est ici: http://weblogs.asp.net/fredriknormen/archive/2009/11/24/refresh-the-cached-entityset-after-a-submitchanges-wcf-ria-services.aspx merci – user203687

Répondre

0
_domainContext.SubmitChanges(
    Sub(submitOperation) 
     _domainContext.Load<Customer>(
      _domainContext.GetCustomersQuery(), 
      LoadBehavior.RefreshCurrent, 
      Sub(loadOperation) 
       Dim results = _domainContnext.Customers.Where(
           Function(entity) Not loadOperation.Entities.Contains(entity)) _ 
           .ToList(); 
       results.ForEach(Sub(entity) _domainContext.Customers.Detach(entity)) 
      End Sub, 
      Nothing) 
    End Sub, Nothing) 

je ne pouvais évidemment pas mettre cela dans un compilateur, mais cela ne devrait vous mettre dans la bonne direction. Fondamentalement, partout où vous voyez un => dans le C#, vous le remplacerez par un Sub en ligne ou Function selon si une valeur doit être retournée. S'il y a des accolades dans le C# lambda, vous obtiendrez une sous-fonction multi-ligne dans VB. Notez que vous pouvez seulement faire cela dans VB2010 car VB08 ne supporte pas Sub lambdas ou lambdas Fonction multi-ligne.