Il y a au moins une faute de frappe dans votre question.
Vous dites que, après
oJCTransLabour = HttpContext.Current.Session["CurrentLabourTransactions"] as Collection<JCTransLabour>;
oJCTransLabour
est non nul, non? Cela a du sens si la session le contient.
Ensuite, vous définissez oCurrentLabourTrans
et lui assignez une requête LINQ. Et puis vous dites que
// at this point the collection oJCTransLabour = null
Attendez, comment peut-il être nul? Vous ne l'avez même pas modifié (c'était oCurrentLabourTrans
modifié) et vous venez de dire oJCTransLabour
n'est pas nul!
Mise à jour: Je viens de remarquer qu'il ya aussi taper des noms: vous l'appelez oJCTransLabours
, vous l'appelez oJCTransLabour
. S'il vous plaît poster le exacte code de sorte que nous ne faisons pas d'hypothèses sur ce que vous avez peut-être mal tapé.
Et, bien sûr, l'expression LINQ ne peut pas être nulle. Je pense qu'il est plus probable que oJCTransLabours
est nulle bien que vous énoncez autrement.
La raison pour laquelle vous pensez que c'est peut-être parce que vous êtes sûr que HttpContext.Current.Session["CurrentLabourTransactions"]
n'est pas null. Cela est vrai, mais vous utilisez l'opérateur as
pour convertir la valeur en Collection<JCTransLabour>
. Contrairement à l'opérateur de diffusion, as
ne déclenche pas d'exception si les types ne concordent pas, il renvoie simplement null
.
Vous pourriez vouloir essayer
oJCTransLabour = (Collection<JCTransLabour>)HttpContext.Current.Session["CurrentLabourTransactions"];
et voir si des erreurs apparaissent.
Après la première étape, la variable oJCTransLabour n'est-elle pas vraiment nulle, ou est-ce que HttpContext.Current.Session ["CurrentLabourTransactions"] n'est pas nul, car l'opérateur 'as Collection' dans C# renvoie null si le type doesn ' t correspond, contrairement à la variable (Collection), qui donne une exception. –
En note, soyez prudent avec 'DateTime.Now'. Découvrez 'DateTime.UtcNow'. –