Ответ 1
В настоящее время EF не поддерживает проверки ограничений.
То есть вы не можете применить атрибут к сущности и ожидать, что он сгенерирует соответствующий SQL для создания контрольной строки в базовой базе данных.
Один из способов обойти это при использовании Первых Миграций Первых Данных (http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx) - создать миграцию и добавить строку Sql()
в переопределении функции Up()
, которое сгенерировано
например.
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'");**
}
Также см. этот вопрос и ответ для получения дополнительной информации: Можно ли выразить контрольное ограничение?