我试图通过Entity Framework代码第一种方法在数据库端添加检查约束,
ALTER TABLE [dbo].[YOUR_TABLE]
ADD CONSTRAINT [MinLengthConstraint] CHECK (DATALENGTH([your_column]) > 2)
我正在使用String Length&amp ;;来装饰实体属性。最小长度,但检查约束不适用于数据库表。请提出建议!
[StringLength(100), MinLength(2)]
public string StudentName { get; set; }
答案 0 :(得分:1)
这个怎么样?将StringLength更改为Maxlength。
[MaxLength(100), MinLength(2)]
public string StudentName { get; set; }
确定它适用于linq-to-entity但不确定它是否会将约束应用于DB级别。 不在DB级别上工作。
如果您使用的是初始化程序,则可以执行SqlCommand来创建约束。解决方法。没有测试但应该工作。
protected override void Seed(MyContext context)
{
context.Database.ExecuteSqlCommand("ALTER TABLE [dbo].[YOUR_TABLE]
ADD CONSTRAINT [MinLengthConstraint] CHECK (DATALENGTH([your_column]) > 2)");
}