我有一个数据库,我需要能够加载所有数据。让我们说表名是Person
,而人有一列SSID
(不要担心这不是真正的表)。
我将数据批量复制到此表中,并且不希望出现任何问题,因此SSID
是nvarchar (8000)
。然后使用EF我想将这些数据加载到内存中并验证它的字符串长度是否正确,并在将它们推送到最终表之前修复它们(这部分并不简单,需要进行转换)。
所以我的EF模型:
public class Person
{
[MinLength(9)]
[MxnLength(9)]
public string SSID { get; set;}
//... more code
}
因为我们首先使用代码,所以MaxLength属性将用于确定表中的varchar长度,这是我们不希望发生的。我只是希望能够Validator.Validate(person)
并获得每个验证问题。
最好的办法是什么?
一个想法是2个模型,一个用于实际DB,另一个用于验证。似乎从一个到另一个的数据绑定可能是昂贵/乏味的。
另一个想法是重新实现MaxLength和我们需要做同样事情的其他属性,但EF可能不知道如何处理它因此它不会尝试进行架构更改。
另一个想法是EF中可能有一个设置忽略某些数据注释?
感谢您的帮助。