MVC:从数据库获取值列表

时间:2019-06-19 13:01:45

标签: asp.net-mvc

我正在尝试从MVC控制器中的数据库中提取数据。这是我的代码,但不确定是否可以使用LINQ查询正确执行

public class EditProfileController : Controller
{
    private ApplicationDbContext db = new ApplicationDbContext();

    public IActionResult Index()
    {
        var listdata = db.Users.ToList().Select(x => new FE.Models.AspNetUsers
        {
            Id = x.Id,
           // (repeat the same for all)
        }).ToList();
    }
}

获取索引错误:

  

EditProfileController.Index():并非所有代码路径都返回值FE

和在数据库上:

  

名称db在当前上下文中不存在

如何从数据库表中提取数据以创建列表视图?我应该使用LINQ吗?如果是,我上面的代码中缺少什么?

3 个答案:

答案 0 :(得分:0)

您没有返回任何内容,应该返回列表:

public class EditProfileController : Controller
{
    public IActionResult Index()
    {
        var listdata = db.Users.ToList().Select(x => new FE.Models.AspNetUsers
        {
            Id = x.Id,
           // (repeat the same for all)
        }).ToList();
        return Ok(listdata);
    }
}

答案 1 :(得分:0)

我仅使用VB(使用C#转换器),因此这是从数据库中获取值列表的方法:

Public Function Index()
   dim listData as List(Of Users) = new List(Of Users)

  Using db as new YourDB()
    listData = db.Users.Select(Function(x) x.Id = id).ToList()
  End Using

  return listdata
End Function

或者您可以只使用模型的IQueryable

答案 2 :(得分:0)

public class EditProfileController : Controller
{
    public IActionResult Index()
    {
        List<FE.Models.AspNetUsers> listdata = new List<FE.Models.AspNetUsers>();
        using(ApplicationDbContext db = new ApplicationDbContext())
        {
            listdata = db.Users.Select(x => new FE.Models.AspNetUsers
            {
                Id = x.Id,
               // (repeat the same for all)
            }).ToList();
        }

        return View(listdata)
    }
}

我做了两个假设,您正在尝试将列表传递给视图,而不是返回AspNetUsers的列表,并且您的数据库上下文正在运行。确保在您的视图中声明模型如下:

@model IEnumerable<FE.Models.AspNetUsers>