我正在使用 Entity Framework 4.3 进行代码优先开发,似乎无法通过属性注释或任何其他方式来表达CHECK 约束。我看到 EF 5.0 将添加对检查枚举的支持,但这并不是我想要的。
举一个简化的例子,我想验证所有Person
对象的名字都是“Bob”或“Harry”,并且是 5、10 或 30 岁。
public class Person
{
[Required]
[Check("Bob", "Harry")] //yes, this attribute is imaginary
public string FirstName { get; set; }
[Required, Check(5, 30, 50)] //check is still imaginary
public int Age { get; set; }
}
我可以在事后运行更改脚本来添加这些约束,并且可以滚动我自己的检查属性来执行验证,但是有没有一种方法可以在实体框架中实际表达非枚举的 CHECK 约束?