我需要在员工对象上的列表<>中进行以下更改

时间:2018-11-07 13:47:35

标签: c# linq .net-core

这是我的员工对象

      public class Employee : BaseEntity
{        
    public Employee()
    {
        this.HistoryOfStatuses = new List<Checkinout>();
    }
    public string Name { get; set; }
    public string Department { get; set; }
    public string CardNumber { get; set; }
    public string Status { get; set; }
    public Checkinout ActualCheckinStatuse { get; set; }
    public List<Checkinout> HistoryOfStatuses { get; set; }
    public int UserId { get; internal set; }
    //test
}

}

这是我的控制器

   HistoryOfStatuses = (from checkinout in context.Checkinout
                        join status in context.Status on checkinout.CheckType equals status.Statusid
                        where checkinout.Userid == userinfo.Userid
                        orderby checkinout.CheckTime descending
                        select new Checkinout
                        {
                            CheckStatus = status.StatusText,
                            CheckTime = checkinout.CheckTime
                         }).ToList()

这是我的Checkinout类

     public class Checkinout: BaseEntity
{
   public Checkinout() {
    }
    public int EmployeeId { get; set; }
    public string CheckStatus { get; set; }
   public DateTime CheckTime { get; set; }
   public Employee EmployeeObject { get; set; }

}

这是我的观点,我不能使用CheckStatus或CheckTime

This is my view

2 个答案:

答案 0 :(得分:1)

HistoryOfStatusesList,没有属性CheckStatus

在使用CheckStatus属性之前,您需要从列表中选择一项。

类似

item.HistoryOfStatuses[0].CheckStatus

那是假设您想要列表中的第一条记录,而这可能并不是您想要的。但关键是您需要从列表中选择一项或在列表中循环。

答案 1 :(得分:1)

据我所知,您的HistoryOfStatuses是一个列表,因此您不应该调用该列表的属性,您应该首先对列表进行迭代,然后访问当前迭代对象的属性。

因此,您可能需要执行一个foreach循环。例如:

@foreach(var history in item.HistoryOfStatuses){
    <h1>@history.CheckStatus</h1>
}