我正在尝试将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/