C# 检索单列的值

C# 检索单列的值,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,使用下面的控制器,我可以得到所有数据库的用户表,但如果我只想得到用户的“电子邮件”列,我应该如何写这个控制器 public ActionResult Index() { var users = db.Users.Where(d => d.Subscriptions.Any(x => x.Status == true)); return View(users.ToList()); } 您可以。仅选择所需的列: public ActionResult Index() {

使用下面的控制器,我可以得到所有数据库的用户表,但如果我只想得到用户的“电子邮件”列,我应该如何写这个控制器

public ActionResult Index()
{
    var users = db.Users.Where(d => d.Subscriptions.Any(x => x.Status == true));
    return View(users.ToList());
}

您可以
。仅选择所需的列:

public ActionResult Index()
{
    var users = db.Users
        .Where(d => d.Subscriptions.Any(x => x.Status == true))
        .Select(u => u.Email);

    return View(users);
}
请注意,在这种情况下,您将返回一个
IEnumerable
(我假设
Email
属性为string)

如果要返回更复杂的内容,应使用所需的属性创建一个新对象,如:

public class UserWithEmail
{
    public int UserId { get; set; }
    public string Email { get; set; }
}
然后:

public ActionResult Index()
{
    var users = db.Users
        .Where(d => d.Subscriptions.Any(x => x.Status == true))
        .Select(u => new UserWithEmail() { UserId = u.UserId, Email = u.Email };

    return View(users);
}

非常感谢,一个快速的问题,你知道如何直接返回视图而不传递给视图吗?我想打印变量的值或数组测试目的,这就是原因。我不明白你的问题,我建议你为此问一个新问题:-)