[002]定義MetaData Class以顯示在畫面上的中文表頭名稱
當要實做查詢功能的畫面要查詢自行車路徑資料表CyclingRoutes的時候,當然要設定每筆資料的中文標頭,舉例來說查詢畫面可能像是這樣子:標頭各自為(自行車路徑)、(距離)、(騎乘時間)
自行車路徑 | 距離 | 騎乘時間 |
觀音山 - 凌雲路上 | 6.9km | 30 |
其中,自行車路徑就代表資料表的RoutedName欄位;距離則是Distance欄位;騎乘時間則是RidingTime欄位。
在以往舊的Webform作法,是在查詢的畫面,直接key入中文名稱,但是現在可以直接自訂中文名稱在MetaData類別中,只要定義好一次,不論以後有多少支查詢這個資料表的功能,都可以不用再重複自己key一次中文名稱,是不是很方便呢?
參考此文章[.NET][EF]設定MetaData Class來保留edmx的屬性之後,定義出來的結果如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace CyclingRoutesMeetup.Models
{
//這是metadata class
using System.ComponentModel.DataAnnotations;
[MetadataType(typeof(CyclingRoutesMetadata))]
public partial class CyclingRoutes
{
private class CyclingRoutesMetadata
{
[Display(Name = "路徑名稱")]
public virtual string RouteName { get; set; }
[Display(Name = "距離")]
public virtual double Distance { get; set; }
[Display(Name = "騎乘時間")]
public virtual int RidingTime { get; set; }
[Display(Name = "山頂海拔")]
public virtual int Altitude { get; set; }
[Display(Name = "GooleMap嵌入碼")]
public virtual string GMapCode { get; set; }
[Display(Name = "BikeMap地形圖")]
public virtual string BikeMapUrl { get; set; }
[Display(Name = "簡介")]
public virtual string Introduction { get; set; }
}
}
}
這篇大概是這樣囉。