在EF中我可以添加一个检查约束,这样如果我的CustomerNotes实体有一个布尔“FollowUpRequired”属性,我强制用户在“FollowUpDate”属性中输入一个有效的未来日期吗?
答案 0 :(得分:16)
EF目前不支持Check约束。
也就是说,您不能将属性应用于实体,并期望它生成适当的SQL以在基础数据库中创建Check constrint。
使用代码优先数据迁移(http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx)时,解决此问题的一种方法是生成迁移并在生成的Sql()
函数覆盖中添加Up()
行
e.g。
public override void Up()
{
// Auto generated code here
// ...
// YOUR CUSTOM SQL GOES HERE
Sql("ALTER TABLE foo ADD CONSTRAINT CK_Some_Check CHECK (SomeDate > '20121110 00:00:00.000'");**
}
另请参阅此问题和答案以获取更多信息: Is it possible to express a check constraint?
答案 1 :(得分:14)