[英]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; }
並閱讀此
我創建了一種自定義排序。 當我在查詢字符串中發布sort = {不存在的屬性}時,webgrid不會進行排序,但會給出結果。 如果我編輯此列的標題以發出帶有_LastRequestStatus的查詢字符串(在我的情況下),則我會檢查是否有querystring [“ sort”]等於此字符串(_LastRequestStatus)的控制器,請執行適當的排序(ASC,DESC- querystring中的sortdir),然后像以前一樣將該列表傳遞給視圖。 從那里,webgrid可以根據需要處理分頁,而無需干預。 所有這些都可以在view + controller中完成,而無需客戶端腳本(通常我沒有問題,但是我認為這樣更易讀,尤其是如果我幾個月后看到此代碼)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.