J’utilise Entity Framework dans mon code basé sur C #. Je me heurte à une bizarrerie inattendue et je cherche des suggestions.
Cas 1, 2, 3, 4 … Projets:
RivWorks.dll
RivWorks.Service.dll
RivWorks.Alpha.dll
Échantillons (tous ces travaux):
RivWorks.Alpha.dll:
public static bool EndNegotitation(long ProductID) { var product = (from a in _dbFeed.AutoWithImage where a.AutoID == ProductID select a).FirstOrDefault(); ... }
RivWorks.Service.dll
public static RivWorks.Model.NegotiationAutos.AutoWithImage GetProductById(long productId) { var myProduct = from a in _dbFeed.AutoWithImage where a.AutoID == productId select a; return myProduct.FirstOrDefault(); } public static List GetProductByCompany(Guid companyId) { var myProduct = from a in _dbFeed.AutoWithImage where a.CompanyID == companyId select a; return myProduct.ToList(); }
etc
Case “bizarre”:
RivWorks.Web.Service.dll (projet WCF)
Contient les mêmes références que les autres projets.
public NegotiateSetup GetSetup(ssortingng method, ssortingng jsonInput) { ... long.TryParse(ProductID, out result); var product = (from a in _dbFeed.AutoWithImage where a.AutoID == result select a).FirstOrDefault(); ... }
Je reçois cette erreur de compilation (le mot “où” est mis en évidence dans mon éditeur):
Impossible de convertir une expression lambda pour taper ‘ssortingng’ car il ne s’agit pas d’un type délégué
Des idées ce qui causerait ceci?
Pour ceux intéressés par le résultat:
Il me manquait une simple déclaration d’utilisation en tête de mon code.
using System.Linq;
Cela corrige le problème.
Dans mon cas il manquait
using System.Data.Entity;
Dans mon cas, j’avais le
Using System.Linq;
mais il me manquait le && après un article de clause where.
Mauvais code:
item.Group.ID == grp.ID p.Product_Status_Flag == 1 && item.Valid
Code correct (sans erreur):
item.Group.ID == grp.ID && // <- This was missing and I didn't see it right away. p.Product_Status_Flag == 1 && item.Valid
J'espère que cela fera gagner du temps à quelqu'un.
Je me suis débattu avec ceci dans un modèle de Telerik Grid dans une vue de razor pendant environ une heure. Dans mon cas, ceci:
columns.Bound(x => x.ID).Template(@@item.ID );
était censé être ceci:
columns.Bound(x => x.Id).Template(@@item.Id );
Le cas sur “Id” était faux! J’espère que ça aidera quelqu’un. Vous pourriez avoir cette erreur simplement parce que vous avez mis une propriété inexistante!
using System.Linq; using System.Data.Entity;
Je suis tombé sur cela et j’ai trouvé une solution différente. J’utilisais var query = context.Contacts.Where(c => c.FullNameReverse == "TingTong");
et obtenir l’erreur mentionnée. L’erreur était que j’utilisais la méthode FullNameReverse()
tant que propriété FullNameReverse
. Manqué le ()!!!
J’ai eu le même problème avec mvc 3 razor peut-être que quelqu’un a la même chose, donc je veux montrer comment résoudre ce problème dans mon statut
List lst = db.Taksit.Where(y => y.OgrenciId.Equals(Convert.ToInt32( list[0].Id))).ToList();
j’ai essayé d’utiliser contient mais par conséquent OgrenciId est int je reçois l’erreur mentionnée ici, donc en utilisant égale le problème est résolu
Thread est un peu vieux, mais je viens juste de rencontrer ceci, et rien sur le net n’était la réponse. Un site a mentionné ce qui a conduit à la réponse, qui était un problème de type de données, mais malheureusement, je ne le retrouve pas, alors je poste ma solution ici. Peut-être qu’un futur chercheur en tirera profit.
Original: IQueryable test = from r dans Records où r.Record_ID == 100 select r;
où Records est un IQueryable résultant d’une expression LINQ antérieure.
Le correctif consiste à convertir les enregistrements: (IQueryable
J’espère que cela t’aides…
J’avais un problème similaire à la liaison de colonnes à une grid Telerik MVC. J’avais une propriété Id sur ma classe ViewModel. (Inspiré par la réponse de Chris ci-dessus) je l’ai renommé en XxxId et le problème a disparu. Je semble rappeler quelque chose à propos de MVC faire quelque chose de spécial pour les propriétés Id.
J’ai eu un problème similaire mais avec Rx et dans mon cas, l’ajout
using System;
aidé. FWIW
Mess avec ces méthodes d’extension manquantes est parfois trop ennuyeux.
Dans mon cas, j’ai eu cette erreur en essayant d’utiliser Include dans clientContext.Load dans une application Sharepoint 2013.
J’avais inclus la bibliothèque client Sharepoint comme suit:
using SP = Microsoft.SharePoint.Client;
Pour corriger, je l’ai également ajouté sans l’espace de noms:
using Microsoft.SharePoint.Client; using SP = Microsoft.SharePoint.Client;
Mon problème concernait le format:
.Columns(columns => { columns.Bound(p => p.Id).Filterable(false); columns.Bound(p => p.Name).Width(250); ...
Chaque p.Wthing avait cette erreur sur elle.
C’était un projet utilisant MVC, et j’ai trouvé que mon problème était d’avoir “public static int” ou “chaîne statique publique” sur ces variables (Id, Name, etc.) dans mon modèle. Lorsque j’ai supprimé “static” sur toutes les variables de mon modèle, je n’ai plus eu l’erreur. Me rendait fou pendant environ une journée …
J’ai eu ce problème dans une version légèrement différente.
Si vous appelez une méthode (statique) depuis votre lambda, vérifiez son type de retour. Si le type de retour doit être un IEnumerable (ce qui est souvent le cas lorsque vous utilisez lambdas) mais que vous retournez un object, vous avez évidemment un problème.
Essayez simplement d’utiliser System.Linq; Je pense que cela vous aidera à régler ces problèmes.