2010-07-20 1 views
0

quelqu'un peut-il me dire pourquoi cela ne marche pas?LINQ to SQL Sélectionnez nouveau comme Custom Type ne fonctionne pas!

public class GeocodeCoord 
{ 
    public string Outcode { get; set; } 
    public int X { get; set; } 
    public int Y { get; set; } 
} 

List<GeocodeCoord> _geocode; 

using (MyDataContext db = new MyDataContext()) 
{ 
    _geocode = db.Geocodes.Select(g => new GeocodeCoord { g.postcode, g.x, g.y }).ToList<GeocodeCoord>(); 
} 

je reçois l'erreur suivante:

Impossible d'initialiser le type 'Search.GeocodeCoord' avec un initialiseur de collection, car il ne met pas en œuvre 'System.Collections.IEnumerable'

Merci

+0

Qu'est-ce qui ne fonctionne pas? Avez-vous une exception? Avez-vous une erreur de compilation? – Stilgar

+0

Je reçois une erreur de compilation, juste ajouté des informations supplémentaires .. Bravo – Mantisimo

Répondre

1

La ligne devrait être:

_geocode = db.Geocodes.Select(g => new GeocodeCoord { Outcode = g.postcode, X = g.x, Y = g.y }).ToList(); 
+0

Beautiful! ! Merci beaucoup :) .. Juste essayé et ça marche :) – Mantisimo

0

Il suffit d'utiliser ToList(), le compilateur trouvera le bon type pour vous.

+0

Si je fais cela _geocode = db.Geocodes.Select (g => nouveau GeocodeCoord {g.postcode, g.x, g.y}). ToList(); J'ai la même erreur. Si je fais ce qui suit: _geocode = db.Geocodes.Select (g => new {g.postcode, g.x, g.y}). ToList(); Je reçois Ne peut pas implicitement convertir le type 'System.Collections.Generic.List ' en 'System.Collections.Generic.List ' – Mantisimo

0

Tapez les noms de propriétés de l'initialiseur comme new GeocodeCoord { Postcode = g.postcode, X = g.x, Y = g.y }

+0

Merci, oui cela fonctionne super acclamations :) – Mantisimo

Questions connexes