当我必须为我的Entity Framework模型使用验证属性时,我通常会将模型属性复制并传递到另一个类,并将元数据提供给EF模型。例如:
[MetadataType(typeof(EntityXModel))]
public partial class EntityX {
public String Name {get; set;}
}
public class EntityXModel{
[Required]
public String Name {get; set;}
}
这种方法存在问题,即如果我更新我的.edmx文件,所有matadata都将丢失。所以我可以做一个技巧,让EntityXModel
转换为该类,如
public class EntityXModel{
[Required]
public String Name {get; set;}
public static implicit operator EntityX(EntityXModel x){
return new EntityX {Name = X.Name};
}
这种方法的问题在于它非常耗时。然而,当处理SOAP服务时,真正的问题就出现在游戏中,其中这些模型是以可序列化的方式自动生成的,我们需要经常更新服务引用。
将此类验证属性添加到EF实体类和SOAP服务模型的最佳方法是什么?