我想知道验证持久对象的属性长度最方便的地方在哪里。
比方说,在我的数据库中有一个名为 Country 的表,CountryCode nvarvhar(3)。
我有一个映射对象 Country,它具有 CountryCode 属性,可以保存到 Db 中。
如果用户设置的国家代码不超过3个字符,应该在哪里查看:
- 在属性 CountryCode 的 setter 中
- 或者在保存到数据库的时候
能请教一下吗?
谢谢
最佳答案
我发现最简单的方法是允许将属性设置为任何值(无论如何都是正确的数据类型),然后在保存之前对其进行验证。
我喜欢使用 .Net 中内置的验证属性。这使逻辑与属性相关联。有一个 StringLengthAttribute类应该可以满足您的要求。
属性位于 System.ComponentModel.DataAnnotations 命名空间中(您需要引用同名程序集)。
MVC 和 EntityFramework 有一种内置的方式来验证数据。如果您需要自己执行逻辑,这里有一些代码可能会帮助您入门...
var ctx = new ValidationContext(obj, null, null);
Validator.ValidateObject(obj, ctx);
关于c# - 验证可保存对象的属性长度最方便的地方在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6722367/