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 的任何地方=>,都将替换为内联SubFunction取决于是否需要返回值。如果 C# lambda 中有大括号,您将在 VB 中得到一个多行子/函数。请注意,您只能在 VB2010 中执行此操作,因为 VB08 不支持 Sub lambda 或多行 Function lambda。

于 2010-05-22T00:48:52.303 回答