ScriptIgnore导致其他属性,例如StringLength被忽略

时间:2018-03-06 07:22:28

标签: c# asp.net-mvc attributes scriptignore

我有一些继承自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项目时,我无法复制该问题。我相信我的项目有问题。它能是什么?

1 个答案:

答案 0 :(得分:0)

我不知道内部会发生什么事情才能实现这一目标,但我可以建议一个好的解决方案。

使用DTO'

创建一个Test类,专门用作数据传输对象。在此类中,您可以删除属性,添加属性而无需执行[NotMapped]属性并添加[ScriptIgnore]并使其正常工作。