Эта строка является виновником:
return oCurrentLabourTrans as Collection<JCTransLabour>;
oCurrentLabourTrans
- это , а не a Collection<JCTransLabour>
, и поэтому операция as
возвращает ноль, как и ожидалось. Если бы вы сделали это вместо:
return (Collection<JBTransLabour) oCurrentLabourTrans;
произойдет сбой, и будет брошен InvalidCastException
. Операторы LINQ создают объекты, которые непосредственно реализуют IEnumerable<>
; они не создают автоматически объекты коллекции и списка.
Если вам нужно вернуть Collection<>
, вы можете сделать это вместо:
return new Collection<JCTransLabour>(oCurrentLabourTrans.ToList());