c# - 来自数据库的 EF 模型验证值

标签 c# asp.net-mvc entity-framework

我想知道如何从数据库进行模型验证。 例如

我有一个类叫做 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/

相关文章:

c# - 将 Take() 与匿名类型一起使用(DB2 Provider)

c# - 在类列表 C# 中的特定索引处插入数据

c# - 如何使用 C# 安全地关闭所有正在运行的应用程序

asp.net-mvc - 删除声明同步身份 2.2

asp.net-mvc - 我们什么时候应该使用 Html Helpers、Razor Helpers 或 Partial Views?

.net - 处理 Entity Framework OptimisticConcurrencyException

c# - 如何在多线程 Windows 服务中使用 Ninject 在每个滴答时获取依赖项(DbContext)的新实例?

c# - 在 C# 中获取以下命令行参数(数组中的元素)

html - CSS如何放置列

c# - 动态 where 子句的最简单方法