Безопасно ли передавать Linq и .ToList (),. Single () и т. Д. Для другого метода в качестве параметра функции?

Мне нужно было обернуть некоторые запросы Linq с некоторыми повторными попытками Логика политики.

Безопасно ли передавать это:

return WithRetry<User>(() => 
   dataContext.Users.Where(u => u.UserID == userID).SingleOrDefault());

в это:

public TResult WithRetry<TResult>(Func<TResult> methodCall)
{ 
   // My Try/Catch Retry Code
}

Или вместо этого первая строка должна быть построена следующим образом:

return WithRetry<User>(() => 
{ 
     return dataContext.Users
                       .Where(u => u.UserID == userID)
                       .SingleOrDefault(); 
});
5
задан Vyrotek 3 March 2011 в 14:53
поделиться