Подскажите как организовать классы для дальнейшего их сохранения в БД.
Например, есть класс City - с большим количеством свойств и класс User со свойствами Имя и Посещенные города.
class User {
public string Name { get; private set; }
public List<string> VisitedCities { get; private set; } // имена городов
}
class City {
public string Name { get; private set; }
...
}
Для хранения в БД ввожу классы CityDto и UserDto, который имеет навигационное свойство List<CityDto> VisitedCities.
Соответственно в БД следующие таблицы: Cities, Users, UserCity;
Нужно получить выборку Users по определенному условию.
Алгоритм следующий:
1) Из таблицы Users получаем коллекцию UserDto
2) Для каждого UserDto формируем запрос на получение имен посещенных городов из таблиц Cities и UserCity
3) Конструируем объект User
Есть ли более эффективный способ?