我在我的应用程序中首先使用Entity Framework代码。
我有以下实体类..
public class Filter : Entity
{
#region Property
[Key]
public int FilterID { get; set; }
public int ClientID { get; set; }
public virtual Client Client { get; set; }
public int CSAID { get; set; }
public virtual UserLogin CSA { get; set; }
public int VRAnalystID { get; set; }
public virtual UserLogin VRAnalyst { get; set; }
public bool IsDefault { get; set; }
public int UserID { get; set; }
public virtual UserLogin LoggedInUser { get; set; }
public int QueueID { get; set; }
public virtual Queue Queue { get; set; }
#endregion Property
}
public class FilterConfiguration : EntityTypeConfiguration<Filter>
{
public FilterConfiguration()
{
this.HasKey(p => p.FilterID);
this.Property(p => p.FilterID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).HasColumnName("FilterID");
this.ToTable("Filter");
}
}
我必须确保填写ClientID或CSAID或VRAnalystID以插入/更新此实体。
如何设置实体配置以实现相同的目标?
如果无法在实体配置中设置此项,那么使用Entity Framework代码第一种方法实现相同功能的最佳做法是什么?
答案 0 :(得分:1)
在模型类上实现IValidatableObject接口。然后,您可以在方法中编写代码,以验证其中一个代码是否具有值。
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var results = new List<ValidationResult>();
if (//some checks)
{
results.Add(new ValidationResult("Some Message",
new[] {"TheNameOfTheProperty"}));
}
return results;
}