我有一些继承自Base类的类。
public abstract class Test {
[StringLength(16)]
public string Test {get; set;}
}
上面的代码创建了一个maxLength为16的迁移。
AddColumn("dbo.Test", "Test", c => c.String(maxLength: 16, unicode: false));
到目前为止一切都还可以。
但是,当我为Test属性添加[ScriptIgnore]
属性时,
public abstract class Test {
[StringLength(16)]
[ScriptIgnore]
public string Test {get; set;}
}
然后它创建下面的迁移,maxLength是8000:
AddColumn("dbo.Test", "Test", c => c.String(maxLength: 8000, unicode: false));
在我看来,[ScriptIgnore]
压倒所有其他属性,这是奇怪的。
当我创建一个空的MVC项目时,我无法复制该问题。我相信我的项目有问题。它能是什么?
我不知道内部会发生什么事情才能实现,但我可以建议一个好的解决方案。
创建一个专门用作数据传输对象的Test
类。在这个类上,您可以删除属性,添加属性而无需执行[NotMapped]
属性并添加[ScriptIgnore]
并使其工作。