如何在linq中选择多个列而不匿名返回结果
本文关键字:结果 返回 linq 选择 | 更新日期: 2023-09-27 18:14:10
如何选择多列而不匿名返回linq的结果?
例如context.users.Where(user=> user.id ==10).Select(user => new{user.id, user.email}).FirstOrDefault();
但是在这种情况下,我返回了一个匿名对象,那么我如何返回具有指定列的user类型的对象
类型User
是否与context.users
的成员类型相同?
如果是,你不能选择列,你可以这样做:
context.users.Where(user => user.id == 10).FirstOrDefault();
然而,如果它是一个不同的User
类型,那么你必须这样做:
context
.users
.Where(user => user.id == 10)
.Select(user => new User { Id = user.id, Email = user.email })
.FirstOrDefault();
或者可能是这样:
context
.users
.Where(user => user.id == 10)
.Select(user => new { user.id, user.email })
.Take(1)
.ToArray()
.Select(user => new User { Id = user.id, Email = user.email })
.FirstOrDefault();
从用户类获取实例,然后用指定的列填充它。
context.users.Where(user=> user.id ==10).Select(user => new user{id=user.id,email= user.email}).FirstOrDefault();
试试这个:
var anonymous_object = context.users.Where(user=> user.id ==10).Select(user => new{user.id, user.email}).FirstOrDefault();
User user_object = null;
if(anonymous_object != null)
{
user_object = new User()
{
id = anonymous_object.id,
email = anonymous_object.email
};
}