所以我有以下方法,它是一个查询帮助方法,假设从一个位置找到我的所有区域,有 155 个位置,因此有 155 个区域,但是,只有 4 个区域,它们被一遍又一遍地使用从而产生 155 个区域。
这段代码应该这样做:Select Distinct from locations.region in locations
因此只返回四个区域。
public static IEnumerable<Location> getDistinctLocations()
{
using (var db = new Context())
{
var locations = (from l in db.Locations
select l.region).Distinct();
return locations.ToList();
}
}
问题是我收到以下错误:
无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.IEnumerable”。存在显式转换(您是否缺少演员表?)
发生在:
return locations.ToList();
那么如何返回一个 IEnuerable 对象,以便在我看来,我可以遍历返回的位置并取出区域。
然后在视图中我需要做的:
@{
IEnumerable<UFA.Location.Core.Location> locationDistinct = UFALocationApp.Helpers.QueryHelper.getDistinctLocations();
foreach (var item in locationDistinct)
{
<div data-role="collapsible" data-theme="a" data-content-theme="a" data-inset="false">
<h3>@item.region</h3>
<ul data-role="listview">
@{
IEnumerable<UFA.Location.Core.Location> location = UFALocationApp.Helpers.QueryHelper.getAllLocationsForARegion(item.region);
foreach (var loc in location)
{
<li><a href="@Url.Action("Details", "Location", new { id = item.id })" rel="external">@loc.name</a></li>
}
}
</ul>
</div><!-- /collapsible -->
}
}