我在項目中使用EF 4.1「數據庫優先」。使用T4模板,我有條件地使用Required,DisplayName,MaxLength等屬性來裝飾我生成的屬性。在我的T4模板時,寫屬性方法裏面,我有這樣的:EF T4模板 - 有條件地發射自定義屬性
var maxLength = edmProperty.TypeUsage.Facets.Where(f => f.Name == "MaxLength").FirstOrDefault();
if (maxLength != null && maxLength.Value.ToString() != "Max")
{#>
[MaxLength(<#= maxLength.Value #>, ErrorMessage = "<#=edmProperty.Documentation != null ? edmProperty.Documentation.LongDescription : edmProperty.Name #> cannot exceed <#=maxLength.Value #> characters.")]
<#+}
這個偉大工程,可以從EDMX推斷出的信息,但也有一些事情是定製的,只是不可用。
作爲示例,假設我想用自定義正則表達式類型屬性修飾EmailAddress
屬性。如何自動「選擇」我的模型中的電子郵件地址字段並應用此屬性而不檢查屬性名稱?
有沒有辦法「擴展」EdmProperty或者添加自定義屬性,如IsEmailAddress?
謝謝!
這是不正確的。查看我的答案瞭解更多詳情 – Pawel 2013-03-12 16:38:01