假设我有以下模型:
我还有以下类型:
现在,LINQ 的酷之处在于我可以查询实体框架并返回我的类型的新集合:
问题是:我能否在同一个LINQ查询中返回一组火车站名称,以添加到我的CityDTO类中?
我还有以下类型:
public class CityDTO
{
public string CityName { get; set; }
public string StateName { get; set; }
public List<string> Trainstations { get; set; }
}
现在,LINQ 的酷之处在于我可以查询实体框架并返回我的类型的新集合:
public List<CityDTO> GetCities()
{
using (var db = new CityDataContext())
{
var cities = db.Cities;
var trainstations = db.TrainStations;
var query =
(from city in cities
select new CityDTO
{
CityName = city.Name,
StateName = city.State
}).ToList();
return query;
}
}
问题是:我能否在同一个LINQ查询中返回一组火车站名称,以添加到我的CityDTO类中?
public List<CityDTO> GetCities()
{
using (var db = new CityDataContext())
{
var cities = db.Cities;
var trainstations = db.TrainStations;
var query =
(from city in cities
join trainstation in trainstations
on city.CityId
equals trainstation.CityId into orderGroup
select new CityDTO
{
CityName = city.Name,
StateName = city.State
//assign List<string> of trainstation names to CityDTO.Trainstations
}).ToList();
return query;
}
}
上述Join的另一个问题是它会多次返回相同的城市名称(对应其每个火车站),而我只需要每个城市一个CityDTO实例。
这个最好用两个LINQ语句来完成吗?一个用于获取城市列表,第二个用于获取每个城市的火车站列表?