我正在尝试将LINQ查询的结果转换为列表,但到目前为止没有成功。

This is my action method :

public ActionResult DisplayListOfRolesUser()
{
    string currentUserId = User.Identity.GetUserId();//get the id of the logged user

    UserDetails userDetails = db.UsersDetails.Where(c => c.identtyUserId == currentUserId)
    .FirstOrDefault();
    int UsrCompanyId = userDetails.CompanyId;//get the user's company

     List<WorkRole> WorkRolesQuery = db.WorkRoles.Where(c => c.CompanyId == UsrCompanyId)
     .FirstOrDefault().ToList();//get all the work roles for the compnay.

     //List<WorkRole> lst = WorkRolesQuery.ToList();

     return View(lst);
}


我从堆栈溢出尝试了许多答案,但是没有成功。

目前List<WorkRole> WorkRolesQuery = db.WorkRoles.Where(c => c.CompanyId == UsrCompanyId).FirstOrDefault().ToList();

ToList带有红色下划线,并表示“ WorkRole”不包含“ ToList”的定义。

我只希望有一个WorkRole对象列表,以便可以某种形式在视图中显示它们。

有人可以帮忙吗?

这也是我的模型:

public class WorkRole
{
    [Key]

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]

    public int WorkRoleId { get; set; }
    public string RoleName { get; set; }
    public string RoleDescription { get; set; }
    public int CompanyId { get; set; }
    public virtual Company Company { get; set; }
    public virtual ICollection<WorkRolesUsersDetails> WorkRolesUsersDetails { get; set; }
}

最佳答案

调用.FirstOrDefault().ToList();时,这意味着您首先选择第一个项目(如果存在,否则选择null),然后尝试将此项目转换为列表(失败)。
只需在ToList()语句后调用Where()即可:

List<WorkRole> WorkRolesQuery = db.WorkRoles.Where(c => c.CompanyId == UsrCompanyId).ToList();

关于c# - LINQ查询后无法获取对象的List <>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41806487/

10-08 23:00