更新: 2008 年 7 月
資料模型表示資料庫中的資訊,以及資料庫中的項目相互間的關聯性如何。ASP.NET Dynamic Data 會使用以 CLR 型別表示資料的資料模型。ASP.NET Dynamic Data 也支援 LINQ-to-SQL 與 ADO.NET Entity Framework 資料模型。
透過資料模型,您可以控制資料欄位的外觀與行為,並且只需要利用極少的程式碼或根本不需要任何程式碼,即可執行自動驗證。此外,您可以自訂資料模型會如何影響資料欄位的驗證方式,以及會如何呈現顯示與編輯資料欄位的 UI。
透過了解以及使用資料模型,您可以完成下列工作:
在資料層建立資料相關的邏輯,而不要將資料內嵌在展示層所達成的,從而提升程式碼的重複使用性。
在資料層自訂資料欄位驗證。
將中繼資料套用到資料欄位,從而自訂資料欄位的外觀和行為。
此主題包括下列章節:
背景
顯示與修改資料欄位
驗證資料欄位
其他資訊
背景
動態資料支援 NET Framework 中所包含的 LINQ to SQL 及 Entity Framework 資料模型。這些模型包含 CLR 型別,而動態資料會利用這些型別查詢資料庫,並且執行建立、讀取、更新及刪除 (CRUD) 作業。當您想要將資料驗證及商務邏輯整合到資料模型時,這些模型也是簡易的好方法。
在 Visual Studio 2008 中建立新專案時,您可以選擇 [LINQ to SQL 類別] 或 [ADO.NET 實體資料模型] 範本。這項選擇可以決定專案會使用哪一種模型,換言之,是 LINQ-to-SQL 還是 Entity Framework 模型。動態資料 Scaffolding 在相同的專案中,只能支援一種資料模型的型別。
在執行階段,動態資料會自動擷取與資料模型相關的資訊,如資料欄位屬性。動態資料可以從這項資訊,推測得知要如何建立顯示與編輯資料的 UI。若要呈現 UI,會使用欄位範本。例如,動態資料會利用下列資訊呈現 UI:
兩個資料表之間關聯的資訊,以顯示外部索引鍵資料行並且在資料表之間進行巡覽。
資料型別資訊,用於新增資料欄位驗證。例如,可以使用 null 資料行資訊,以判斷資料欄位是否為必填欄位,另外,也可以使用長度資訊,以限制使用者文字輸入的最大長度。
如需詳細資訊,請參閱 HOW TO:自訂資料模型中的資料欄位外觀和行為。
顯示與修改資料欄位
動態資料會使用資料模型中繼資料,自動判斷呈現顯示及編輯資料欄位的 UI 時,要使用哪些欄位範本。欄位範本為動態資料提供的使用者控制項,用以根據其內建的範本,顯示與修改資料欄位。若要呈現資料型別,動態資料會對整個資料模型執行搜尋,尋找已套用 UIHintAttribute 屬性的類別。
如果該屬性存在,它會指定要使用哪一個欄位,顯示及修改特定資料欄位的型別。如果找不到這個屬性,動態資料會尋找其名稱符合該資料欄位型別的欄位範本。例如,顯示整數值時,動態資料會搜尋名稱為 Integer.ascx 的欄位範本。如需詳細資訊,請參閱 ASP.NET 動態資料欄位範本概觀。
動態資料可以讓您自訂並擴充用於呈現顯示和編輯資料欄位的 UI。您可以套用下列可能的自訂內容:
新增自訂中繼資料到資料欄位。您可以利用屬性將中繼資料指派到資料欄位,從而自訂要如何呈現顯示與編輯資料欄位的 UI。例如,您也可以使用 UIHintAttribute 屬性,將自訂欄位範本與任一資料欄位建立關聯。如需詳細資訊,請參閱 HOW TO:自訂資料模型中的資料欄位外觀和行為。
將非內建的型別資訊加任到資料欄位型別。您可以利用屬性將任一型別指派給不是直接衍生自資料來源的資料欄位。例如,您也可以使用 DataTypeAttribute 屬性,將其他且非內建的型別與任一資料欄位建立關聯。如需詳細資訊,請參閱 HOW TO:自訂資料模型中非內建資料型別的資料欄位外觀和行為。
驗證資料欄位
動態資料支援根據加入下列驗證類型之資料模型的資料欄位驗證:
必要欄位的驗證。如果資料欄位不可為 null,動態資料會強制要求指定一個值給該欄位。
長度驗證。如果資料欄位為字串型別,動態資料會強制使用欄位的最大長度限制。
型別驗證。動態資料會強制要求使用者的輸入值必須符合資料欄位的內建資料型別。
動態資料可以讓您利用下列方式,自訂及擴充資料欄位驗證:
使用屬性。當您想要將其他驗證套用到已經提供的驗證,而且預設 System.ComponentModel.DataAnnotations 屬性能夠完全滿足您的要求時,應該使用這個方法。
使用部分類別方法。您可以覆寫處理已對資料欄位進行之變更的部分類別方法,藉此自訂驗證並且新增自己的商務邏輯。想要將一般的商務邏輯加入到屬性無法處理的資料模型時,應該利用這個方法。
如需詳細資訊,請參閱 HOW TO:自訂資料模型中的資料欄位驗證。
其他資訊
如需動態資料的詳細資訊,請參閱下列主題:
了解 URL 路由。如需詳細資訊,請參閱 ASP.NET 路由。
了解如何在 Web 應用程式中使用 O/R 設計工具以建立表示 SQL Server 資料庫的資料類別。如需詳細資訊,請參閱物件關聯式設計工具 (O/R 設計工具)。
了解如何在 Web 應用程式中使用 ADO.NET 實體資料模型設計工具以建立表示資料庫的資料類別。如需詳細資訊,請參閱 ADO.NET 實體資料模型設計工具 (Entity Designer)。
了解 LINQ-to-SQL 物件關聯的對應概念。如需詳細資訊,請參閱 LINQ to SQL。
了解 ADO.NET Entity Framework。如需的詳細資訊,請參閱 ADO.NET Entity Framework。
了解部分類別和方法。如需詳細資訊,請參閱部分類別和方法 (C# 程式設計手冊)。
回到頁首
請參閱
工作
概念
ASP.NET 動態資料 Scaffolding 和頁面範本概觀
參考
System.ComponentModel.DataAnnotations
變更記錄
日期 |
記錄 |
原因 |
|---|---|---|
|
2008 年 7 月 |
加入主題。 |
SP1 功能變更。 |