Код Entity Framework сначала добавляет ограничение для положительных чисел
Мне нужно добавить ограничение только для положительных чисел (0-...) и ограничить числа как (...-1).
CreateTable(
"dbo.Drinks",
c => new
{
Id = c.Int(nullable: false, identity: true),
Name = c.String(),
ImageUrl = c.String(),
Price = c.Int(nullable: false),
Count = c.Int(nullable: false)
})
.PrimaryKey(t => t.Id);
//.Constraint ???
что-то вроде "unsigned" в MS SQL. Спасибо.
2 ответов
конфигурация Entity Framework fluent в настоящее время не поддерживает параметры min или max, только length.
вы можете, однако, реализовать проверку, как это, через аннотации:
[Range(1, int.MaxValue, ...)]
int YourInt{ get; set; }
но это приведет только к проверке во время сохранения, а не к фактическому ограничению, добавляемому в базу данных, как это было бы с плавной конфигурацией / миграцией.
PS
Я люблю миграции Entity Framework, но я использую только его во время разработки до первого релиза. Это огромная экономия времени, пока вы не отправите свой продукт. После этого я обычно сам настраиваю базу данных, включая индексы и ограничения, и вообще отбрасываю использование миграции EF.
базы данных должны быть клинически скорректированы в производстве, потому что они обычно являются одним из наиболее (если не самым) важных факторов производительности и оптимизации. И unfurtunately эф миграции не дают вам необходимую гибкость, даже хотя она охватывает наиболее важные случаи использования.
возможно, с диапазоном Dataannotation:
[Range(0.0, Double.MaxValue)]
только значения больше 0-это то, что вы ищете, не так ли?