标签: data-annotations

ValidationResult.MemberNames 属性是否会包含多个值?

我用反射器进行搜索,但没有找到一种ValidationResult.MemberNames应该包含多个值的情况。

所以,首先我想知道为什么 MS 必须这样做IEnumerable<string>,那么既然他们已经这样做了,我可以相信这个属性只会返回一个值吗?


关于 DataAnnotations 验证系统的更新我发现更多的马虎:

  1. 如果错误不再存在,TryValidateProperty则 和应该已从validationResultsTryValidateObject参数中删除错误。
  2. ValidationResult 应该覆盖 Equals 和 GetHashCode。
  3. 为什么 ValidationResult.ErrorMessage 是可变的!?我自己无法构建 EqualityComparer!
  4. 如果 DataTypeAttribute 仅用于表示问题,为什么它继承 ValidationAttribute,这只是误导,我必须努力奋斗,直到我明白(经过反思)它不起作用。MS只是没有实施它。

而这样的例子不胜枚举。

validation validationattribute data-annotations

4
推荐指数
1
解决办法
711
查看次数

dataannotations 在主键上设置身份种子值,首先使用代码

ASP.NET MVC3 代码第一个项目。

在我的类定义中,如何设置 Identity 种子值。

  public class Account
  {
    [Key]   
    public int Id { get; set; }
Run Code Online (Sandbox Code Playgroud)

将 Identity 种子设置为 1000000 的语法是什么?

谢谢

data-annotations ef-code-first asp.net-mvc-3

4
推荐指数
1
解决办法
6029
查看次数

如何仅在选择一个单选按钮时应用必填字段验证

我正在使用 MVC 数据注释进行客户端验证。

如何实现这个简单的场景:

仅当选择一个单选按钮时才将字段标记为必填字段

validation asp.net-mvc data-annotations

4
推荐指数
1
解决办法
5625
查看次数

针对 MVC 中非必需属性的整数验证

我试图验证我拥有的模型上的属性。此属性不是必需的,因此如果其无效的 MVC 似乎会忽略它。我什至创建了一个自定义 ValidationAttribute,但没有任何作用。

public class NumberWang : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        if (value == null)
            return true;

        int g;
        if (int.TryParse(value.ToString(), out g))
        {
            if (g >= 0)
                return true;
        }
        return false;
    }
}

public class MyModel 
{
    [Range(0, 999999, ErrorMessage = "category_id must be a valid number")]
    [NumberWang(ErrorMessage = "That's NumberWang!")]
    public int? category_id { get; set; }

    /* there are other properties of course, but I've omitted them for simplicity */

    public …
Run Code Online (Sandbox Code Playgroud)

c# validation data-annotations asp.net-mvc-3

4
推荐指数
1
解决办法
2万
查看次数

从 TableAttribute Dapper.Contrib 获取表名

我正在使用 Dapper 和 Dapper.Contrib 从数据库映射对象。

我有一个类名,我在其中定义该类的表名,因为它与实际的类名不同。

班级:

[Table("tblUser")]
public class User
{
    public int Id { get; set; }
    public string Title { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如何获取设置表数据注释属性的表名?

编辑:

我用以下方法让它工作

var tAttribute =
    (TableAttribute)typeof(T).GetCustomAttributes(typeof(TableAttribute), true)[0];

tableName = tAttribute.Name;
Run Code Online (Sandbox Code Playgroud)

typeof data-annotations dapper

4
推荐指数
1
解决办法
9653
查看次数

将消息添加到 context.result

我正在创建一个 DataAnnotation,如果不成功将返回一个 BadRequest。

context.Result = new BadRequestResult();
Run Code Online (Sandbox Code Playgroud)

这很好用。

我想在其中包含一条消息,但 BadRequestResult 似乎没有接受任何消息参数?

有没有办法做到这一点......包括一条消息,例如“未提供参考号”

谢谢

c# bad-request data-annotations

4
推荐指数
1
解决办法
2816
查看次数

如何覆盖默认的必需错误消息

我有一个旧的 C# MVC 2.0 Web 应用程序。

每当我使用[Required]属性时,默认的验证错误消息都会显示:

[whatever] 字段是必需的。

我的问题是应用程序不是英文的,所以我基本上必须将属性调用更改为[Required(ErrorMessage = "Le champ [whatever] est requis.")]无处不在。

有没有办法覆盖默认错误消息,以便我只需要在需要特定消息时指定它?

我正在寻找类似的东西:

DefaultRequiredMessage = "Le champ {0} est requis.";
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc data-annotations asp.net-mvc-2

4
推荐指数
1
解决办法
2329
查看次数

我可以“覆盖”超类私有字段的注释吗?

在其他编程语言方面有 20 年的经验,现在我是 Java 新手,感觉自己像个菜鸟程序员......

我使用Indexable抽象类来扩展我的所有@entity类,因此我不需要将@Id @GeneratedValue @SequenceGenerator它们放在所有类上。我也有Auditable通向@CreatedBy @CreatedDate @ModifiedBy @ModifiedDate这些继承路径的方法:

  • 大多数实体类 > AuditableClass > IndexableClass;
  • 一些实体类 > 可索引类。

现在我注意到我的 99% 的实体类还具有:

@Column(nullable = false, unique = true) private String name;
Run Code Online (Sandbox Code Playgroud)

我想将该行移到类中Indexable以避免 99% 中的样板代码,但是没有name字段的两个类是重要的可审计类,我不想将所有祖先字段复制到它们只是为了防止其上出现空名称错误。

问题是:如果我在这两个类上覆盖该字段的注释以使其可为空且瞬态,是否可以避免在表上创建该字段并且不会用空名称打扰用户?

class SomeAuditableClass extends Audited {
  //@override
  @Column(nullable = true) @Transient private String name;
Run Code Online (Sandbox Code Playgroud)

Java中有没有办法重写类变量中的内容?没有多大帮助...

java inheritance jpa data-annotations

4
推荐指数
1
解决办法
4056
查看次数

实体框架 - [Keyless] 数据注释缺失

根据 Microsoft Documentation Here,我应该可以访问 [Keyless] 的属性,以便我可以定义我的模型具有无键,以便在我的 DBContext 中我可以有类似的东西:

public DbSet<MyKeylessClass> KeylessModel { get; set; }
Run Code Online (Sandbox Code Playgroud)

并使用_context.KeylessModel.FromSqlRaw(...),而无需向其添加 PK。我有参考资料,System.ComponentModel.DataAnnotations除了 Keyless 之外的所有属性都在那里,我在这里遗漏了什么?

c# data-annotations entity-framework-core

4
推荐指数
2
解决办法
4570
查看次数

MaxLength 数据注释是否适用于 List&lt;T&gt;?

可以将[MaxLength()]属性与字符串和简单数组一起使用:

[MaxLength(500)]
public string ProductName { get; set; }
Run Code Online (Sandbox Code Playgroud)

或者

[MaxLength(50)]
public string [] Products { get; set; }
Run Code Online (Sandbox Code Playgroud)

但是它可以与列表一起使用吗?

[MaxLength(50)]
public List<string> Types { get; set; }
Run Code Online (Sandbox Code Playgroud)

c# list maxlength data-annotations

4
推荐指数
1
解决办法
96
查看次数