我有一個視圖模型類用於獲取客戶列表及其提供的列表。如何從數據庫中獲取ViewModel的列表?
餐廳視圖模型
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; }
在我的大tabase,我有一個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秒才能檢索所有餐廳及其優惠。 –