【发布时间】:2015-12-11 17:45:23
【问题描述】:
我有一个视图模型类,用于获取客户列表及其报价列表。
餐厅视图模型
public class RestaurantsListVM
{
public Client client { get; set; }
public List<Offer> offers { get; set};
}
客户端模型
public class Client
{
public Guid Id { get; set; }
public String RestaurantName { get; set; }
}
报价模式
public class Offer
{
public Guid Id { get; set; }
public String OfferName { get; set; }
public decimal OfferPercentage { get; set; }
在我的数据库中,我有一个 ClientOffer 表,它还将客户与他们的报价对应起来,例如:
***"ClientOfferId,ClientId,OfferId"***
所以我创建了这个函数来从数据库中检索数据。
public List<RestaurantsListVM> GetRestaurants()
{
List<RestaurantsListVM> restaurantlist = new List<RestaurantsListVM>();
var clients = new Client().GetClients();
foreach (Client c in clients)
{
RestaurantsListVM restaurantdetails = new RestaurantsListVM();
restaurantdetails.client = c;
restaurantdetails.offers = new Offer().GetOffers(c.Id);
restaurantlist.Add(restaurantdetails);
}
return restaurantlist;
}
它工作正常。但问题是它在 sql server 中一次又一次地执行查询,同时检索每个客户端提供,并且性能下降。
我应该如何提高我的代码效率以获得更好的性能?
【问题讨论】:
-
检索所有餐厅及其优惠大约需要 10 秒。
标签: c# model-view-controller viewmodel asp.net-mvc-viewmodel