我想知道如何从数据库进行模型验证。 例如
我有一个类叫做 User
它有属性public string UserName {get;设置;
此属性具有数据注释属性[StringLength(100)]
我想动态地更改这些值,我的意思是 100。我想制作管理面板,管理员可以在其中将这些值从 100 更改为他想要的任何值,例如 20。这只是一个示例。
我该怎么做?
例如,我有想法为每个属性创建新类
StringLenght
继承自 ValidationAttribute
MyOwnclass : StringLength
所以StringLength
继承自ValidationAttribute
在这个类中,我可以创建 DBContext
并在覆盖的 IsValid
方法中读取这些值。但我不知道需要多长时间。例如,我有一个包含 15 个表单输入的 Register View 。每个输入都会至少向数据库发出 1 个请求。性能可能很差?
还有其他方法可以将这些值存储在应用程序内存中吗?并在他更改此设置时在 Admin Controller 中更新它?
最佳答案
我的两分钱,您可以将长度存储在单独的表中,并从管理面板更改它。 每次插入/更新用户时,首先检查此变量。您可以使用存储过程或覆盖 ValidateEntity验证新/更新用户的用户名的功能。
关于c# - 来自数据库的 EF 模型验证值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38934123/