convertir en int en string dans linq pour la recherche

Je voudrais que mes utilisateurs d'être en mesure de rechercher pour les ordres d'achat (qui sont INT) via partielle des chaînes, c'est à dire si un ordre d'achat est 123456 tapant dans 456 me donne 123456 dans les résultats.

J'ai pensé que ce serait le travail:

        var pop = (from po in ctx.PurchaseOrders
               let poid = po.PurchaseOrderID.ToString()
               where poid.Contains(term)
               select new SearchItem
               {
                   id = poid,
                   label = po.SupplierID,
                   category = "purchaseorder"
               }).ToList();

Mais j'obtiens une erreur

LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.

Comment puis-je convertir l'INT PurchaseOrderID à une chaîne pour me permettre de rechercher des fragments de celui-ci?

Grâce

  • Essayez un direct en fonte, c'est à dire let poid = (string)po.PurchaseOrderID. Linq to entities mettra à l'honneur certains de l'appel de méthode ToString n'est pas l'un d'eux. Directe casting est logicaly equival à un CAST(X as Type) en SQL.
  • J'ai répondu à la même question ici. Check it out. stackoverflow.com/questions/21233023/...
  • La solution à votre problème ici: stackoverflow.com/questions/1066760/...