Cette erreur est si bizarre, je ne peux tout simplement pas comprendre ce qui est vraiment faux!
dans usermontroller, j'ai p> ma vue est de type où et quoi EXACTEMENT EST NULL!? P> Je crée les utilisateurs à partir d'un faux référentiel avec Peut-être que quelqu'un peut me signaler dans la bonne direction ici? Le haut de la trace de la pile est: p> est-ce quelque chose à voir avec Linq ici? Dites-moi si je devrais inclure la trace de la pile complète. P> Edit fort> merci @ rpm1984 em> votre suggestion a obtenu le code de casser dans le contrôleur lui-même. De plus, j'ai appris quelque chose de nouveau. P> merci @mikael em>, je suis d'abord utilisé le fenêtre immédiate wow c'est cool! = D p> devine que vous vivez, codez et apprenez! P> p> @model iEnumerable
C'est ce qui se passe: p> p>
u.usergroupmain.groupname code> merci @lunivore em>.
C'était un repo de maquette et j'avais un test unitaire pour vérifier si l'utilisateur de la moqueur de repo avait une instance em> de l'instance em> de UserGroupMain, mais je n'ai pas affirmé si la propriété GROUPNAME code> avait été défini! p>
3 Réponses :
Ouais, ça a eu quelque chose à voir avec Linq. LINQ n'exécute pas la requête avant de l'utiliser. Donc, lorsque vous en boucle, la requête est courante et pour une raison quelconque elle se bloque.
Qu'est-ce que Getall retourner? Une chose que vous pourriez faire est de placer un point d'arrêt à l'intérieur de l'index () et quand il se casse écrire cela dans la fenêtre immédiate. P> Si vous ne trouvez pas la fenêtre immédiate peut l'ouvrir en écrivant p> dans la boîte de recherche (en haut de VS) p> si cela ne plante pas le problème est probablement dans la linq Index intérieur (). D'après ce que je peux voir, je soupçonnerais que U.UserGroupMain ou U.Branch est NULL. Mais difficile à dire sans plus d'informations. p> p>
Je ne savais pas que Linq l'a fait cela non plus. Vraiment, vraiment utile - merci!
Changer cette ligne: à ceci: p> pourquoi? p> de msdn: p> La méthode asénumérable (de Tsource) (iEnumerable (de Tsource)) n'a aucun effet autre que de modifier le type de source de compilation d'un type qui implémente iEnumerable (de T) à iEnumerable (de T). < / p>
blockQquote> en anglais - parce que C'est pourquoi j'aime Resharper - il vous dira que l'appel
.asenumerable () code> convertit sur
iEnumerable
iquéryable
ienumerable
foreach code> . Astuce classique de Linq différé Exécution différée. P>
asenumerable () code> est redondant - alors il deviendra beaucoup plus évident que votre requête est étant différé. p>
.tolist () code> va déclencher la requête avant d'atteindre la vue et implémente toujours
ienumerable
Vérifiez que le usergroupMain code> et
branche code> que vous avez mis en place dans vos utilisateurs ne sont pas NULL:
UserGroupName = u.UserGroupMain.GroupName,
BranchName = u.Branch.BranchName,
Je ne peux toujours pas croire que j'étais ce Daft! La frustration peut vraiment vous conduire aveugle!
Pas de problème, c'est ce que nous sommes là pour. Big Upvote pour Mikael - J'aurais peut-être résolu le problème, mais c'est une réponse beaucoup plus intéressante!
Lorsque vous déboguez la vue, est
modèle code> null? En outre, qu'est-ce que le modificateur code> virtuel code> sur la méthode d'action?
@RPM Nope Model n'est pas nul mais un type long Linq. Je vais mettre une screentie à cela et quelques informations de Mroe bientôt! Je viens de rentrer à la maison!
Pas besoin, voir ma réponse. À peu près sûr que c'est votre problème. Je vais me coucher - va vérifier le matin. :)