我正在处理自动填充文本框。在这个用户可以输入他们的城市名称,我想从这个输入中搜索数据库表中的记录,并显示城市名称,州名和国家名称的相关组合列表。
如何使用LINQ获取此详细信息。
我的表结构如下,
国家 Countryid PK 国家或地区名称
国家 Stateid PK Statename的 Countryid FK
城市 Cityid PK 城市名称 Stateid FK
我想在自动填充文本框上获得结果。
例如,如果用户写san 他将获得包含san的城市名称列表
像美国加利福尼亚州旧金山一样。如何编写LINQ查询以获得此结果。
答案 0 :(得分:1)
使用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提供与输入字符匹配的建议。
答案 1 :(得分:1)
var query = from c in dataContext.City
where c.Contains(keyword)
select c.CityName + ", " + c.State.StateName+ ", "+ c.State.Country.CountryName;
答案 2 :(得分:1)
另一种变体:
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
));