1

以下を VB 2010 に翻訳してほしい (高度な構文を使用)


_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);

他の方法で上記を取得することができました(ただし、匿名メソッドは使用していません)。VB 2010 で利用可能なすべての高度な構文が上記に適用されることを期待しています。

誰でもこれについて私を助けることができますか?

ありがとう

4

1 に答える 1

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)

私は明らかにそれをコンパイラに入れることができませんでしたが、それはあなたを正しい方向に導くはずです. 基本的に、C# で a が表示される場所はどこでも、値を返す必要があるかどうかに応じて=>、インラインに置き換えます。C# ラムダに中括弧がある場合、VB では複数行の Sub/Function になります。VB08はサブラムダまたは複数行の関数ラムダをサポートしていないため、これはVB2010でのみ実行できることに注意してください。SubFunction

于 2010-05-22T00:48:52.303 に答える