Problème avec la conversion de int en string dans Linq to entities

var items = from c in contacts
            select new ListItem
            {
                Value = c.ContactId, //Cannot implicitly convert type 'int' (ContactId) to 'string' (Value).
                Text = c.Name
            };
var items = from c in contacts
            select new ListItem
            {
                Value = c.ContactId.ToString(), //Throws exception: ToString is not supported in linq to entities.
                Text = c.Name
            };

Est-il de toute façon je peux réaliser ceci?
Notons que dans la VB.NET il n'y a aucun problème à utiliser le premier extrait il fonctionne tout simplement génial, VB, il est souple, im incapable de s'habituer à C#rigueur!!!

  • .ToString() ne fonctionne pas pour LinqToEF en VB soit. À mon humble avis, Sorte de stupide.
  • le problème est avec le ELINQ linq (2 entités), parce qu'il traduit votre code SQL, et quand il s'agit d'un intérieur ToString demande, il ne sait pas comment traduire "ToString" pour SQL. Contrairement à linq 2 objets, lorsqu'il n'y a pas de traduction, et tout est CLR lambdas, alors qu'elle est effectuée directement sur les objets demandés.
  • Je suis juste irritée qu'ils permettre ce genre d'erreur à la compilation, et que j'ai eu de troll pour toujours pour trouver une simple description en anglais de la cause (sans juridique-ese et le milieu universitaire-ese).
  • Vous avez raison, mais ils sont aussi à droite, ils ne sont pas censés traduire tous le CLR et personnalisé CLR fonctionnalités de SQL, et surtout pas dans la toute première version de EF 🙂 Sur le ToString, lire Brian de réponse: stackoverflow.com/questions/1066760/...
  • Super, mais comment les personnes utilisant 3.5, n ° 4? Alors quoi?
  • Il semble que la question évidente qui personne n'a demandé c'est pourquoi sur la terre est le ListItem.Valeur (propriété) d'une chaîne et non un int?
  • Car ce n'est pas la question qui a été posée.

InformationsquelleAutor Shimmy | 2009-07-01