我想将以下内容翻译成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中可用的所有高级语法都应用于上述语法。
有人可以帮我吗?
感谢
答案 0 :(得分: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#中看到=>
,您就会替换为内联Sub
或Function
,具体取决于是否需要返回值。如果C#lambda中有大括号,你将在VB中得到一个多行子/函数。请注意,您可以仅在VB2010中执行此操作,因为VB08不支持Sub lambdas或多行函数lambdas。