【发布时间】:2015-10-09 07:43:27
【问题描述】:
如何设置自定义验证,当Entry.state == EntityState.Added 为真时,以下代码将起作用!
自定义验证码:
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
class UniqueEmailAddress : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
this.email = (string)value;
using (G9EntityDataBaseClass oEntity = new G9EntityDataBaseClass())
{
if (oEntity.User.Where(u => u.email == email).Count() == 0)
{
return ValidationResult.Success;
}
else
{
return new ValidationResult(ErrorMessageString);
}
}
}
}
使用:
[CustomValidation.UniqueEmailAddress]
public string email { set; get; }
我需要 ((NOT)EntityState.Added):
if (Entry.state != EntityState.Added){
return ValidationResult.Success;
}
我应该从哪里带来Entry.state
【问题讨论】:
-
当该陈述为真时,您希望它触发什么,或者如果围绕它,您只需要它吗?对问题有点困惑
-
这段代码在哪里?它在实体内部吗?
-
呵呵,你希望如何对 EF 实体执行
ValidationAttribute验证?
标签: c# asp.net-mvc entity-framework validation