提问人:bootsy 提问时间:6/19/2019 最后编辑:Dale Kbootsy 更新时间:6/20/2019 访问量:2207
MVC:从数据库中获取值列表
MVC: Get List of values from Database
问:
我正在尝试从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 吗,如果是这样,我在上面的代码中缺少什么?
答:
1赞
Umer Zaman
6/19/2019
#1
您没有返回任何您应该返回列表的内容:
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);
}
}
评论
0赞
bootsy
6/19/2019
是的,添加退货会有所帮助。如何修复数据库。我仍然收到错误“名称 db 在当前上下文中不存在”。
0赞
Umer Zaman
6/19/2019
@bootsy 在类或函数中创建名称为“db”的数据库上下文类对象,作为访问数据库表的要求
0赞
bootsy
6/19/2019
我添加了私有 ApplicationDbContext db = new ApplicationDbContext();但我在新的 ApplicationDbContext 上收到错误“没有给出对应于”ApplicationDbContext.ApplicationDbContext(DbContextOptions<ApplicationDbContext>)“所需的正式参数”options“的参数
0赞
Ricardo
6/20/2019
#2
我只使用 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
0赞
KevinLamb
6/20/2019
#3
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>
评论