天天看點

EF Code First資料送出前進行模型驗證/資料驗證

1.執行sql前資料驗證,如果失敗抛出異常,驗證失敗資訊,在注釋方法中可以自定義

/// <summary>
/// 模型驗證
/// </summary>
public bool IsValided<T>(T model) where T : class
{
    DbEntityValidationResult vResult = Context.Entry<T>(model).GetValidationResult();
    if (vResult == null)
        return true;
    if (vResult.IsValid)
        return true;
    StringBuilder builder = new StringBuilder();
    foreach (DbValidationError item in vResult.ValidationErrors)
    {
        builder.Append("出錯字段:" + item.PropertyName);
        builder.Append("<br/>");
        builder.Append("錯誤描述:" + item.ErrorMessage);
        builder.Append("<br />");
    }
    throw new Exception("資料驗證失敗," + builder.ToString());
}
           

2.自定義驗證失敗,異常資訊

[StringLength(32,ErrorMessage ="最大長度為32")]
        public string UpperCase32 { get; set; }