gpt4 book ai didi

c# - 为什么 Select 返回一个 bool 值?

转载 作者:行者123 更新时间:2023-11-30 19:16:43 25 4
gpt4 key购买 nike

我在 MVC 5 中使用 Entity Framework 6。

我有以下方法:

[HttpPost]
public ActionResult UpdateDetails(ApplicationUser applicationUser)
{
var context = new ApplicationDbContext();
var user = context.Users.Select(x => x.UserName == applicationUser.UserName).FirstOrDefault();

//etc etc
}

用户是一个 IDbSet<ApplicationUser> .

为什么我从 Select 方法返回一个 bool 值?

我的期望是得到 ApplicationUser对象回来。为什么不是这样?

谢谢

最佳答案

Select()转换序列的一个元素。由于 x.UserName == applicationUser.UserName 返回一个 bool,该方法的结果将是一个 bool 值。

你想要的需要 Where方法。这将根据指定的谓词过滤序列:

var user = context.Users.Where(x => x.UserName == applicationUser.UserName).FirstOrDefault();

可以缩短为:

var user = context.Users.FirstOrDefault(x => x.UserName == applicationUser.UserName);

这是可能的,因为 this FirstOrDefault() 的重载将过滤器谓词作为第二个参数。

关于c# - 为什么 Select 返回一个 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21892588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com