.NET
Entity Framework ORM
▌背景
在 Database first開發的環境下, 重新加入實體資料模型會將開發者所有在 .edmx 程式碼的調整清除;
延伸閱讀文章: Entity
Framework 6 issue (2)
這時候可利用Partial class的特性定義DAO新的properties或方法,但是如果是要加上Attribute 在實體資料模型的欄位裡面 ( 例如加上System.ComponentModel.DataAnnotations的驗證屬性 ), Partial class就不是適合了,這時可以利用 MetadataTypeAttribute
來完成此需求。
▌環境
l Windows 7 pro
l MS Sql Server 2012
l Visual Studio 2015 Ent.
l EntityFramework 6.1.3
▌實作
▋Put
MetadataTypeAttribute on your Partial Class
使用方式其實相當簡單,首先,我們必須在實體資料模型之外,另外加入新的DAO Partial Class, 並且作如下設計。
PS.
本例是 MetaData. MetaDesc 這個欄位在DB並非 NOT NULL, 但是我們強迫前端驗證時需判斷其為NOT
NULL 和最大長度, 所以在該欄位加上 System.ComponentModel.DataAnnotation
的驗證屬性。
[MetadataType(typeof(MataData_Validation))]
public partial class MetaData
{
}
internal class MataData_Validation
{
[Required]
[StringLength(500)]
public string MetaDesc { get; set; }
}
|
▌Reference
沒有留言:
張貼留言