La requête LINQ-TO-SQL dans Visual Studio génère une requête SQL avec des erreurs. Dans Linqpad, la même requête Linq utilisant la même base de données (ou DataContext) fonctionne simplement bien.
Voici une petite partie de SQL générée où l'erreur se produit. : P>
if (!acces.IdRole.HasValue) { acces.IdRole = null; }
4 Réponses :
Avez-vous essayé de vérifier si vos propriétés avaient des valeurs avec la propriété HasValues fournie par les nullables?
where t.IdRole == access.IdRole.HasValues ? access.IdRole.Value : null
Essayez ceci:
where object.Equals(t.IdRole, access.IdRole)
Cela fonctionne! Mais je ne comprends toujours pas pourquoi Visual Studio ne génère pas exactement la même requête SQL que Linqpad ... LINQPAD gère les valeurs null / références différemment? Quoi qu'il en soit, merci.
Utilisez
SELECT [t0].[StreetId], [t0].[Prefix], [t0].[Suffix] FROM [Street] AS [t0] WHERE ([t0].[Suffix] IS NOT NULL) AND ([t0].[Suffix] = @p0) AND ([t0].[Prefix] IS NULL)