Как получить результаты из нескольких таблиц с помощью LINQ - PullRequest
0 голосов
/ 16 октября 2011

Я работаю над автозаполнением текстового поля. В этом пользователь может ввести название своего города, и из этого ввода я хочу искать записи из таблицы базы данных и отображать связанный список комбинаций названия города, названия штата и страны.

Как я могу получить эту информацию, используя LINQ.

У меня есть структура моей таблицы, как показано ниже,

Страна Countryid PK CountryName

Состояние Stateid PK StateName Кантри ФК

Город Ситикид ПК Название города Stateid FK

Я хочу получить результат в текстовом поле автозаполнения.

Например, если пользователь пишет san он получит список с названием города, содержащим сан

как Сан-Франциско, Калифорния, Соединенные Штаты Америки.

Как я могу написать запрос LINQ, чтобы получить этот результат.

Ответы [ 3 ]

1 голос
/ 16 октября 2011
var query = from c in dataContext.City
            where c.Contains(keyword)
            select c.CityName + ", " + c.State.StateName+ ", "+ c.State.Country.CountryName;
1 голос
/ 16 октября 2011

Другой вариант:

var matches = cities.Where(c => c.CityName.Contains(substr))
                    .Select(a => String.Format("{0} {1} {2}",
                                        a.CityName, 
                                        a.State.StateName, 
                                        a.State.Country.CountryName 
                           ));
1 голос
/ 16 октября 2011

Использование linq-to-sql:

var q = from c in context.cities
select c.CityName + ", " + c.State.StateName + ", " + c.State.Country.CountryName
where CityName.StartsWith(typed);

Это даст IEnumerable с предложениями, которые соответствуют набранным символам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...