c# - 在动态数据项目中动态更改数据注释

标签 c# asp.net entity-framework dynamic t4

我遇到过在动态数据 Web 应用程序中自定义 DataAnnotations 的场景。这是场景:

[Display(Name="DispName")]
public string DName{get;set;}

我不想为 Display DataAnnotation 硬编码 Name="DispName",而是想从数据库中获取一些值并适合 Name 属性。喜欢:

[Display(Name=SomeValueFromDB)]    
public string DName{get;set;}

有什么方法可以从数据库中显示 Display DataAnnotation 的 Name 属性而不是对其值进行硬编码?

另外,如何根据表值更改ScaffoldColumn(True/false)

我可以使用 T4 模板执行此操作吗?

提前致谢。

最佳答案

一般来说不会,属性会被编译并成为 CIL 元数据的一部分。要调查这是一个很好的 SO 线程,它详细介绍了这个主题。 Is it possible to modify the attribute of a property at runtime?

我个人认为您应该考虑另一种将标签传递到前端的方法,这样您就可以更加灵活。例如,包含标签和值的模型。

关于c# - 在动态数据项目中动态更改数据注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16644388/

相关文章:

c# - 语言本地化只在 Debug模式下工作

c# - 包装托管代码以供非托管使用

c# - 添加或修改 True Type 字体 (TTF) 中字形的简单方法

c# - 在 Sitecore glass 映射器中禁用特定属性的版本检查

asp.net - 当事件触发时,页面从默认值开始

c# - 从数据集中获取单个值的最佳方法是什么?

c# - 滚动时修复 gridview 标题

c# - 如何阻止 EF 逆向工程师将表名称的复数更改为单数?

c# - 动态创建 Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?

c# - SqlNullValueException : Data is Null on Json call