如何使用Lambda和EF返回List而不是对象

时间:2012-09-02 16:59:20

标签: c# linq entity-framework-4 lambda

我有这个返回单个用户的代码:

  return RetryWithExpression<User, User>(u => u.FirstOrDefault(x => x.UserEmail == userEmail));

我正在尝试转换它,以便它返回许多这样的用户:

return RetryWithExpression<User, List<User>>(u => u.Select(x => x.sUserCity == cityId));

这不编译,我收到错误:

Cannot implicitly convert type 'System.Linq.IQueryable<bool>' to 'System.Collections.Generic.List<User>'. An explicit conversion exists (are you missing a cast?)

如何从此方法返回List?

1 个答案:

答案 0 :(得分:4)

我认为你想要Where哪些过滤器。 Select进行预测。在您的情况下,Select将返回IEnumerable<bool>,因此编译错误。

return RetryWithExpression<User, List<User>>(u => u.Where(x => x.sUserCity == cityId));

由于RetryWithExpression需要列表,请致电ToList()

return RetryWithExpression<User, List<User>>(u => u.Where(x => x.sUserCity == cityId).ToList());