2

我有一些从基类继承的类。

public abstract class Test {    
[StringLength(16)]
public string Test {get; set;}
}

上面的代码创建了一个 maxLength 为16的迁移。

AddColumn("dbo.Test", "Test", c => c.String(maxLength: 16, unicode: false));

到目前为止一切正常。

但是,当我[ScriptIgnore]为 Test 属性添加属性时,

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 项目时,我无法复制该问题。我相信我的项目有问题。会是什么?

4

1 回答 1

0

我不知道内部会发生什么来实现这一点,但我可以建议一个很好的解决方法。

使用 DTO

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

于 2018-03-06T07:28:42.860 回答