簡體   English   中英

復雜類型的MVC WebGrid

[英]MVC WebGrid of complex type

我正在創建一個網絡網格。 我的專欄之一是集合復雜類型:

[Table("RequestStatus",Schema="dbo")]
public class RequestStatus
{
    [Key]
    public int Id { get; set; }

    public string Status { get; set; }
}

在我的實體中:

    public virtual ICollection<RequestStatus> RequestStatuses { get; set; }

在我的webgrid中,我希望能夠以類似於以下方式通過此屬性進行排序:

   RequestStatuses.Last().Status

我在實體中創建了一個只讀屬性:

    [NotMapped]
    public string LastRequestStatus
    {
        get { return this.RequestStatuses.Last().Status; }
    }

但我得到:

System.NotSupportedException:LINQ to Entities中不支持指定的類型成員'LastRequestStatus'。 僅支持初始化程序,實體成員和實體導航屬性

我假設是因為此屬性未映射到db字段。 有沒有一種方法可以解決這種情況,或者我需要為此編寫自定義排序?

提前致謝!

嘗試這個:

get { return this.RequestStatuses.ToList().Last().Status; }

要么

get { return this.RequestStatuses.OrderByDescending(ee=>ee.YourPropery).First().Status; }

並閱讀此

LINQ To Entities無法識別方法Last。 真?

我創建了一種自定義排序。 當我在查詢字符串中發布sort = {不存在的屬性}時,webgrid不會進行排序,但會給出結果。 如果我編輯此列的標題以發出帶有_LastRequestStatus的查詢字符串(在我的情況下),則我會檢查是否有querystring [“ sort”]等於此字符串(_LastRequestStatus)的控制器,請執行適當的排序(ASC,DESC- querystring中的sortdir),然后像以前一樣將該列表傳遞給視圖。 從那里,webgrid可以根據需要處理分頁,而無需干預。 所有這些都可以在view + controller中完成,而無需客戶端腳本(通常我沒有問題,但是我認為這樣更易讀,尤其是如果我幾個月后看到此代碼)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM