2010-07-20 2 views
0

может кто-нибудь сказать мне, почему это не работает?LINQ to SQL Выберите новый, поскольку пользовательский тип не работает!

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>(); 
} 

Я получаю следующее сообщение об ошибке:

Невозможно инициализировать типа '' Search.GeocodeCoord с коллекцией инициализаторе, поскольку он не реализует 'System.Collections.IEnumerable'

Thanks

+0

Что не работает? Вы получаете исключение? Получаете ли вы ошибку времени компиляции? – Stilgar

+0

Я получаю ошибку компилятора, просто добавил дополнительную информацию .. cheers – Mantisimo

ответ

1

Линия должна быть:

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

Красиво! ! Спасибо вам большое :) .. Просто попробовал и это работает :) – Mantisimo

0

Просто используйте ToList(), компилятор найдет правильный тип для вас.

+0

Если я делаю это _geocode = db.Geocodes.Select (g => новый GeocodeCoord {g.postcode, g.x, g.y}). ToList(); Я получаю ту же ошибку. Если я делаю следующее: _geocode = db.Geocodes.Select (g => new {g.postcode, g.x, g.y}). ToList(); Я получаю Не могу неявно преобразовать тип 'System.Collections.Generic.List ' в 'System.Collections.Generic.List ' – Mantisimo

0

Введите имена собственности инициализаторе как new GeocodeCoord { Postcode = g.postcode, X = g.x, Y = g.y }

+0

Спасибо, да, это работает отличные ура :) – Mantisimo

Смежные вопросы