ошибка сообщает вам, что именно не так, у вас есть строка, но вы пытаетесь назначить ей список (два очень разных объекта), вы можете просто:
public class Ports
{
public List<String> cities { get; set; }
}
, что сделает это строка действительна, но лучше сделать «Порты» списком и использовать его как List<Port>
, и каждый порт будет содержать «город» (и все остальные свойства порта).
но в любом случае чтобы получить все порты из базы данных, вы, вероятно, можете сделать:
var ports = db.ports_data.ToList();
, который должен дать вам список со всеми портами в вашей базе данных (нет необходимости создавать этот New Ports()
и заполнять его, если вам нужно для группировки по городу это должно быть так же просто, как:
var ports = db.ports_data.GroupBy(x=>x.city).ToList();
в комментарии, который вы упомянули, что вы получаете дубликаты, для этого вам может потребоваться отдельный, но если вам не нужны дубликаты, вы не должны будет добавлять дубликаты в базу данных для начала, поэтому мы коснемся неправильного конца здесь, но в любом случае я считаю, что вам понадобится Distinct (), если в сочетании с выбором вы получите только города, другие, если re - это дубликаты:
var portsCities = db.ports_data.Select(x=>x.city).Distinct().ToList();
, что приведет к List<string>
городам, все разные
, как вы можете видеть, у Linq есть много способов получить именно те данные, которые вам нужны, я бы поиграйте с ним и поэкспериментируйте, лучший способ учиться!
Я бы также попытался использовать метод LINQ (как в примерах выше), если вы начинаете, им легче управлять (более объектно-ориентированным), вы можете видеть несколько примеров здесь