如何使用 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 个问题
- 我不知道如何为
required
属性 添加自定义消息
- 我不知道如何指定最小尺寸和最大尺寸
我想做的事的例子。
我正在尝试转换为:
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
}
}
}
RequiredAttribute
是 System.ComponentModel.DataAnnotations
命名空间的一部分,许多 Microsoft 和其他外部库根据目标范围以不同方式使用它。
例如:ErrorMessage
属性 被 asp .net MVC 用于向 ModelState 添加错误,但在 EF Core 中,相同的 属性 只是忽略,因为它不适用于上下文(ef core 应该将此错误消息放在数据库中的什么位置?)。
最后还是得把RequiredAttribute放到model中才能显示错误信息,但同时可以使用Ef core中的Required()方法在db table.
我正在尝试实施 fluent API
而不是 DataAnnotations
我有 2 个问题
- 我不知道如何为
required
属性 添加自定义消息
- 我不知道如何指定最小尺寸和最大尺寸
我想做的事的例子。
我正在尝试转换为:
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
}
}
}
RequiredAttribute
是 System.ComponentModel.DataAnnotations
命名空间的一部分,许多 Microsoft 和其他外部库根据目标范围以不同方式使用它。
例如:ErrorMessage
属性 被 asp .net MVC 用于向 ModelState 添加错误,但在 EF Core 中,相同的 属性 只是忽略,因为它不适用于上下文(ef core 应该将此错误消息放在数据库中的什么位置?)。
最后还是得把RequiredAttribute放到model中才能显示错误信息,但同时可以使用Ef core中的Required()方法在db table.