我正在尝试从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吗?如果是,我上面的代码中缺少什么?
答案 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>