c# - 如何使用 Lambda 和 EF 返回列表而不是对象

标签 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?)

如何从此方法返回列表?

最佳答案

我想你想要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/

相关文章:

c# - 选择 View 模型时如何在 IQueryable 中添加新的 where 条件?

c# - 具有多个字段的 LINQ OrderBy

.net - 使用 Entity Framework 连接到 Oracle 时如何通过连接字符串更改架构?

c# - LINQ to Entities - 在我的示例中排除部分发货订单的 WHERE 子句

c# - 当我运行 appRoleAssignments 时,它返回不清楚的响应

c# - 排序列表<keyValuePair<string,string>>

c# - 对使用 OrderBy 的 linq 查询进行分页

Linq Lambda GroupBy 和 OrderBy

.net - 在 EntityObject 中的自定义属性上引发 PropertyChanged

c# - 动态替换 MVC 4 中的标签