如何使用 Fluent api 将自定义消息添加到具有最小和最大大小的必需 属性?

How do I add a custom message to a required property with a min and max size using fluent api?

我正在尝试实施 fluent API 而不是 DataAnnotations 我有 2 个问题

  1. 我不知道如何为 required 属性
  2. 添加自定义消息
  3. 我不知道如何指定最小尺寸和最大尺寸

我想做的事的例子。

我正在尝试转换为:

    public class Inventory
    {
        [Key]
        public int inventory_id { get; set; }
        [Required(ErrorMessage = "El campo {0} es obligatorio"), StringLength(20, ErrorMessage = "{0} la longitud debe estar entre {2} y {1}.", MinimumLength = 10)]
        public string name { get; set; }
        public string location { get; set; }
        public bool status { get; set; }
    }

使用流利API

namespace API.Data
{
    public class ApplicationDbContext : DbContext
    {
        public ApplicationDbContext(DbContextOptions options) : base(options)
        {
        }
        public DbSet<Requirement> Requirements { get; set; }
        public DbSet<Inventory> Iventories { get; set; }
        public DbSet<Asset> Assets { get; set; }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            #region Inventory
            // iventory ID
            modelBuilder.Entity<Inventory>()
                .HasKey(i => i.inventory_id);
            // Name
            modelBuilder.Entity<Inventory>()
            .Property(i => i.name)
            .IsRequired(true, ErrorMessage("is Requerid!"));
            #endregion
        }
    }
}

RequiredAttributeSystem.ComponentModel.DataAnnotations 命名空间的一部分,许多 Microsoft 和其他外部库根据目标范围以不同方式使用它。

例如:ErrorMessage 属性 被 asp .net MVC 用于向 ModelState 添加错误,但在 EF Core 中,相同的 属性 只是忽略,因为它不适用于上下文(ef core 应该将此错误消息放在数据库中的什么位置?)。

最后还是得把RequiredAttribute放到model中才能显示错误信息,但同时可以使用Ef core中的Required()方法在db table.