首页 > 解决方案 > asp.net mvc - LINQ 查询以选择特定列

问题描述

如果凭据匹配,以下代码将返回表的所有信息。但是我想在 else 条件块中编写另一个查询,它只会返回我管理表的特定列,例如电子邮件、名称和角色。我怎样才能做到这一点?

Admin adminLoggedin  = db.Admins.SingleOrDefault(x => x.Email==model.Email && x.Password == model.Password);
if (adminLoggedin == null)
{
    return BadRequest();
}
else
{
    // ***Query2  select Email , Name, RoleId from Admins Where Email = adminLoggedin.Email 
    // how to write this query with Entity framework and ado.net model

    FormsAuthentication.SetAuthCookie(model.Email, model.RememberMe);
                        return Ok(adminLoggedin);
}

标签: c#asp.net-mvclinq

解决方案


使用匿名类型和查询语法,您可以编写如下内容:

var query = from admin in db.Admins
where admin.Email == adminLoggedIn.Email
select new { Email=admin.Email, Name=admin.Name, RoleId = admin.RoleId };

如果您需要从此函数返回此查询结果,请创建一个具有 Name、Email 等属性的简单类,然后将其与上述查询中的 select 子句一起使用,例如 select new CustomClass {Email, admin.Email,}


推荐阅读