如果我在我的实体类中添加[Required]
,那么不显眼的验证工作正常。
[Required]
。
如果我在我的实体属性中手动添加[必需],例如
[Required]
public int {get;set;}
我更新edmx时会删除 [Required]
。
所以我的问题是如果我在EF中首先使用数据库,我该如何执行客户端验证。
答案 0 :(得分:3)
为您的实体创建一个分部类,并使用 MetadataType 属性。见下面的例子:
[MetadataType(typeof(MyEntity.Metadata))]
public partial class MyEntity
{
private sealed class Metadata
{
[Required(ErrorMessage = "* required")]
public string MyRequiredField { get; set; }
}
// Add other similar properties here...
}
此类不受设计器生成代码更改的影响。
答案 1 :(得分:0)
这是ado.net团队的一个问题。我想当你首先使用数据库EF时,你的域模型会继承数据库的约束,因为数据库设计是你的应用程序逻辑的主设备。