【发布时间】:2013-04-05 20:03:37
【问题描述】:
我尝试将 MaxLength 属性从 100 更改为 50,但出现异常提示
"The index 'IX_Singers_Name' is dependent on column 'Name'.
ALTER TABLE ALTER COLUMN Name failed because one or more objects access this column."
模式是:
public class Singer : NamedEntity
{
[MaxLength(50)] // It was 100
public override string Name { get; set; }
}
据我了解,实体框架需要更改表以进行此更改,但它不能更改表,因为 Name 属性上存在索引。那么我怎样才能通过实体框架迁移来实现呢?
我可能会在迁移中删除索引,然后在下一次迁移中更改 maxlength 并在最后一次迁移中再次创建索引。但我相信应该有一种简单的方法来更改该属性值。
【问题讨论】:
-
索引是如何创建的?我也不清楚您是要更改属性的值还是要更改属性的值(我认为后者是不可能的,因为这是代码首先用于构建数据库并验证您的模型与数据库匹配的代码)
-
索引是通过迁移创建的。
标签: entity-framework entity-framework-6