我有一个特殊的存储过程,它从我的数据库中返回一个分发者列表。然后我遍历Distributors循环并将结果输出到网页。但是,我需要为每个经销商加载州和国家。我宁愿在循环之前执行此操作,以便页面更快。这是我的代码:
List<Distributor> distQuery = connection.spDistFindLocal(Lat, Long).ToList<Distributor>();
我知道我可以对我列表中的每个元素进行distributor.State.Load();
,但我认为这是一个糟糕的选择。我还有其他选择吗?
答案 0 :(得分:1)
使用投影:
List<DistributorViewModel> distQuery =
(from d in connection.spDistFindLocal(Lat, Long)
select new DistributorViewModel
{
Name = d.Name,
State = d.State.Name,
Country = d.Country.Name
})ToList();
这不仅会在一个查询中加载所有数据,而且还会忽略为此视图加载您不关心的属性。