Часть вашего кода выглядит следующим образом:
new Employee()
{
Name = ...,
Department = ...,
CardNumber = ...,
Status = ...,
ActualCheckinStatuse = (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
}).First()
}
Здесь выражение (from checkinout in ... select new Checkinout { ... })
будет перечислением (или последовательностью, если вы предпочитаете) из Checkinout
экземпляров.Когда вы делаете .First()
для этого, как указано выше, результатом будет один экземпляр типа Checkinout
.
Насколько я понимаю, это хорошо компилируется.И это потому, что свойство ActualCheckinStatuse
, которое вы присваиваете в этом инициализаторе, имеет тот же объявленный тип, Checkinout
.
Если вместо этой круглой скобки (from checkinout in ... select new Checkinout { ... })
вы добавите .ToList()
, тогда выget - это все эти Checkinout
экземпляры в .NET List<>
в памяти.Конечно, вы не можете присвоить это ActualCheckinStatuse
, потому что типы не совместимы.Один Checkinout
, называемый ActualCheckinStatuse
, не может быть установлен на целое List<>
таких Checkinout
с.