我有这段返回单个用户的代码:
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?)
如何从此方法返回列表?
最佳答案
我想你想要Where
哪个过滤器。 Select
做一个投影。在你的情况下 Select
会返回 IEnumerable<bool>
,因此出现编译错误。
return RetryWithExpression<User, List<User>>(u => u.Where(x => x.sUserCity == cityId));
自 RetryWithExpression
需要一份 list ,请调用 ToList()
return RetryWithExpression<User, List<User>>(u => u.Where(x => x.sUserCity == cityId).ToList());
关于c# - 如何使用 Lambda 和 EF 返回列表而不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12237966/