2016-03-01 20 views
1

所以我想要做的是顯示存儲在數據庫中的5個最近記錄以顯示在「創建」視圖上。該表存儲在「_Recent」中,該表是該表的部分視圖。該表出現在「創建」視圖中,但我怎樣才能讓它只顯示最近5條記錄而不是所有內容。如何僅顯示數據庫中的5個最新記錄 - ASP.NET MVC

_Recent(部分圖)

<div class="col-md-6"> 
<div class="table-title"> 
    <table class="table-fill"> 
     <thead> 
      <tr> 

       <th> 
        @Html.DisplayNameFor(model => model.DisplayName) 
       </th> 
       <th> 
        @Html.DisplayNameFor(model => model.Date) 
       </th> 
       <th> 
        @Html.DisplayNameFor(model => model.Amount) 
       </th> 
       <th> 
        @Html.DisplayNameFor(model => model.TaxBonus) 
       </th> 
       <th> 
        @Html.DisplayNameFor(model => model.Comment) 
       </th> 

      </tr> 
     </thead> 

</div> 


@foreach (var item in Model) 
{ 
    <tbody class="table-hover"> 
     <tr> 
      <td clas="text-left"> 

       @Html.DisplayFor(modelItem => item.DisplayName) 
      </td> 
      <td class="text-left"> 

       @Html.DisplayFor(modelItem => item.Date) 
      </td> 
      <td class="text-left"> 

       @Html.DisplayFor(modelItem => item.Amount) 
      </td> 
      <td class="text-left"> 

       @Html.DisplayFor(modelItem => item.TaxBonus) 
      </td> 
      <td class="text-left"> 

       @Html.DisplayFor(modelItem => item.Comment) 
      </td> 

     </tr> 


    </tbody> 

} 

</table> 

創建視圖

<div class="table-title"> 
    @Html.Partial("_Recent", Model); 

</div> 

創建控制器

public ActionResult Create() 
    { 
     return View(db.Donations.ToList()); 
    } 

慈善類

public class Charity 
{ 
    public int ID { get; set; } 
    public string DisplayName { get; set; } 
    public DateTime Date { get; set; } 
    public Double Amount { get; set; } 
    public Double TaxBonus { get; set; } 
    public String Comment { get; set; } 
} 

public class CharityDBContext : DbContext //controls information in database 
{ 
    public DbSet<Charity> Donations { get; set; } //creates a donation database 
    public Charity Highest { set; get; } 
    public CharityDBContext() 
    { 
     this.Highest = new Charity(); 


    } 

} 

回答

1
public ActionResult Create() 
{ 
    return View(db.Donations.OrderByDescending(x => x.Id).Take(5).ToList()); 
} 

你也可以使用OrderByDescending(x => x.Date)。當記錄是創建和當它是更新時,好的做法是有日期(列和屬性),因此您可以按這些字段進行排序。

+0

謝謝你!幫助很多:) – Edafy

-2
public ActionResult Create() 
{ 
    return View(db.Donations.OrderByDescending(o => o.ObjectID).Take(5).ToList()); 
} 

請檢查大寫字母,我不是在Visual Studio現在。

修訂

+0

這將採取前5,然後扭轉他們,不保證他們將被逆轉Id。 –

+0

對不起,我犯了一個錯誤,.OrderByDescending()之前.Take(5) –

+0

沒有'OrderByDescending'重載沒有參數。你總是必須提供一個Func或者lambda。 – mason

0

做正確的方法是:

  1. 訂購的記錄由所需的字段(OrderByDescending)
  2. 限制的結果所需要的記錄(取)
  3. 而在去年,這種來自你的結果數據庫(ToList)。

return View(db.Donations.OrderByDescending(d => d.ID).Take(5).ToList());

這使得查詢位於墊層數據庫引擎來執行並只得到從數據庫表中的記錄的確切人數。

相關問題