正如主题中简短描述的那样:如何将所有 DataAnnotations 从模型移动到元数据模型,以便在更新 edmx 时不将其清除?
换句话说,我希望数据注释安全并且不会随着 edmx 的每次更新而被删除,并且我将在 dataannotation 中有一个选项来检查是否满足所有数据注释要求(IsValid 方法)以在 RelayCommand 的 CanExecute 方法中使用它.
我有一堂课如下:
public partial class Customer : IDataErrorInfo
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public int ID{ get; set; }
[Required(ErrorMessage = "Field required")]
public string Name{ get; set; }
[Required(ErrorMessage = "Field required")]
public string LastName{ get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<tblKontrahent> tblKontrahent { get; set; }
#region Validation
public bool IsValid { get; set; }
public string Error { get { return null; } }
public string this[string columnName]
{
get
{
Validation();
return InputValidation<Customer >.Validate(this, columnName);
}
}
public ICollection<string> AllErrors()
{
return InputValidation<Customer >.Validate(this);
}
private void Validation()
{
ICollection<string> allErrors = AllErrors();
if (allErrors.Count == 0)
IsValid = true;
else
IsValid = false;
}
#endregion
#region Shallow copy
public Customer ShallowCopy()
{
return (Customer )this.MemberwiseClone();
}
#endregion
}
如何使用注释和 IsValid 函数将其从 Model 移动到 MetaDataModel。如果 ShallowCopy 方法也可以移动,那就太好了。
非常感谢您的任何建议!