J'essaie d'optimiser une requête donc je l'ai branché sur LINQPAD mais je reçois toujours une erreur de référence nulle, je ne peux pas assigner de valeur nulle à System.Int32 .. quand je commente le FolderID à la fin, le erreur ne se produit plus. Pourquoi suppose-t-on que FolderID est un System.Int32 et comment puis-je en faire un Int32? Au lieu de cela, il est nullable et je peux exécuter la requête?Pourquoi LINQPAD suppose-t-il que cette variable est un System.Int32 et comment puis-je changer d'avis?
(from groupBundle in GroupBundles
join userGroup in UserGroups on groupBundle.GroupID equals userGroup.GroupID
join bundle in Bundles on groupBundle.BundleID equals bundle.BundleID
where userGroup.UserID == 75
orderby bundle.BundleName
select new
{
BundleID = bundle.BundleID,
BundleName = bundle.BundleName,
BundleIcon = bundle.BundleIcon,
UseSpecialPlayer = (bundle.UseSpecialPlayer != null && bundle.UseSpecialPlayer == true) ? true : false,
height = bundle.PuHeight,
width = bundle.PuWidth,
UserID = 75,
CompanyID = 32,
IsFavorite = ((from f in Favorites where f.FavoriteTypeID == 1 && f.UserID == 75 && f.ActionID == bundle.BundleID select f).Count() > 0) ? true : false,
//THIS ONE HERE
FolderID = (from cf in CategoryFolders
join folder in Folders on cf.FolderID equals folder.FolderID
where folder.CompanyID == 32 &&
cf.CategoryID == bundle.BundleID
select cf.FolderID).FirstOrDefault()
}).Distinct()
si vous downvote, s'il vous plaît commentaire ... ne sais pas pourquoi il en est une mauvaise question, ne savent pas où LINQPad devient l'idée de cette variable à partir car il est juste un nouvel objet créé à la volée ... droite? – BigOmega
Pas que j'ai downvoted, mais vous pourriez * certainement * avoir simplifié votre exemple très significativement. Non seulement c'est inutilement complexe, mais c'est aussi incomplet - qu'est ce que UserGroups? Qu'est-ce que Bundles? Quels sont les types impliqués? Un exemple court mais * complet * aurait été beaucoup plus facile à utiliser. –
ouais je comprends cela, mais je voulais juste tout inclure puisque je ne savais pas ce qui causait la chose à assumer ce que le type FolderIDs devrait être, maintenant qu'ils me l'ont signalé je vois que vous avez raison, je seulement J'avais besoin de cette dernière partie, je n'avais aucune idée de ce qui déterminait ce que FolderID devrait être – BigOmega