如何首先通过EF代码在数据库端添加min length check约束?

时间:2015-10-08 02:36:58

标签: entity-framework

我试图通过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; }  

1 个答案:

答案 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)");
}