【问题标题】:EntityFramework 5.0 Variables Data AnnotationsEntityFramework 5.0 变量数据注释
【发布时间】:2012-11-08 00:07:59
【问题描述】:

我正在使用 DisplayText 从数据库示例中加载数据: 代码简历:

public class AtributosInModels : DisplayNameAttribute
{
    string displayName;
    private static int lenght;

    public static int Lenght
    {
        get { return lenght; }
        set { lenght = value; }
    }

    vw_UsuarioPerfilAtributoRepository vw_usuarioPerfilAtributoRepository = new vw_UsuarioPerfilAtributoRepository();

    public AtributosInModels(string key) 
    {

        _key = key;

    }

    public override string DisplayName
    {
        get
        {
            Func<vw_UsuarioPerfilAtributo, bool> expressionPerfil = Perf => Perf.NomeAtributo == _key;
            var entity = vw_usuarioPerfilAtributoRepository.GetSingle(expressionPerfil);

            if (entity.Tamanho!=null)
            lenght = entity.Tamanho.Value;

            try { displayName = entity.NomeLabel; }
            catch (Exception) { displayName = null; }
            return string.IsNullOrEmpty(_key) ? "" : displayName;
        }
    }



    public string _key { get; set; }
}

}

    [AtributosInModels("NomeUsuario")]
    [MaxLength(AtributosInModels.Lenght)]
    public string NomeUsuario { get; set; }

如果代码乱七八糟,我会放满**

现在我想从数据库中加载 Lenght、DataType、Permission、DisplayFormat。 但是模型类不能操作变量,我正在尝试使用静态方法

[MaxLength(AtributosInModels.Lenght)]

错误5 属性参数必须是属性参数类型的常量表达式、typeof表达式或数组创建表达式

失败。

【问题讨论】:

    标签: data-annotations entity-framework-5


    【解决方案1】:

    属性参数必须在编译时已知。因此它必须是一个常数值。

    【讨论】:

    • 那么有什么建议可以在 MVC4 上使用最大长度吗?
    • 我不是 100% 确定您在做什么以及使用该属性的原因是什么 - 是否用于验证?你想如何验证它?手动或通过内置机制进行验证(例如 EF 验证)。如果是后者,您可以只使用 CustomValidationAttribute 并将动态逻辑放在这里。我不完全理解的是为什么 NomeUsuario 可以有不同的长度。请注意,我不是 MVC 专家,因此可能会遗漏一些明显的东西。
    • 这是因为我的系统从数据库中加载了你所有的信息,所以屏幕浏览器上出现的任何东西都写在数据库中,即使是相同的模型 css 也为想要的客户以这种方式工作随时更改任何我用友好的界面和简单的屏幕制作的东西(翻译,适应任何业务,维护)。虽然在 String Lenght 中可能看起来有点没用,但它同样适用于其他各种数据注释。
    猜你喜欢
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多