J'utilise le cadre MVC et entité. J'ai créé une classe dans mon dossier modèle avec ce code ci-dessous. Je continue à obtenir le message d'erreur ci-dessus avec les deux requêtes ci-dessous. Je sais qu'il y a un problème connu sur la référencement des variables non scalaires, mais je ne sais pas comment mettre en œuvre une solution de contournement:
http://msdn.microsoft.com/en-us/library/bb896317.aspx#y1442 p>
3 Réponses :
Vous ne pouvez pas utiliser m.checkedout.equals (1) code> dans la requête Linq-to-entités. Utilisez
m.checkedout == 1 code> mais
curedout code> doit être
integer code>. P>
Merci! C'est en fait un champ de bits dans SQL Server, donc j'ai utilisé cela à la place et cela a fonctionné: où (m.Checkedout == vrai)
Equals fonctionne bien à Linq vers des entités. Je l'utilise tout le temps. par exemple. .where (r => r.employename.equals (EmailEname, StringComParisonSon.invariantcultureCase)) Code>
Merci. C'est l'une de ces choses qui sont presque impossibles à trouver avec le message d'erreur.
même numéro utilisant de sorte que ce p> devient ce p> Il y a un blog post Expliquer l'ennemi. p> p> tout () code>
Je devais changer ma clause où la clause de recherche sur des types primitifs, pour moi Int
C'est une question plus âgée. J'ai eu le même problème lorsque vous essayez de filtrer une colonne nullable à l'aide de l'interface iquéreuse. J'ai résolu le problème en vérifiant d'abord pour voir si l'objet avait une valeur, puis vérifiant la valeur.
widgets = widgets.Where(x => x.ID.HasValue.Equals(true) && x.ID.Value.Equals(widgetID));