c# - 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);
}
解决方案
使用匿名类型和查询语法,您可以编写如下内容:
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,}
推荐阅读
- python - whois 包无法导入
- android - Android Gradle 读取超时
- jquery - 如何在 JQuery 计算器中应用算术运算与第一次计算的总值
- regex - find_all 用正则表达式在美丽的汤中
- google-cloud-platform - VM Instance 关闭后我的网站会丢失数据吗?
- python - 数据框的每一行都有一个列名..如何将其更改为一行名称?
- python - 使用 Python 2.7 从 HTML 字符串中提取文件名
- python - 我如何制作具有两个特定间隔的数组?
- firebase - firebase https url 会接收 http post 请求吗?
- javascript - 如何从数据库和分页显示特定 div 中的特定数据?