该解决方案包含一个数据实体项目和一个使用EF Core的ASP.NET Core 3.1 MVC项目。
在数据实体项目中,有一个域类:
public class BoatMaker
{
[Key]
public int Id { get; set; }
[Required]
public string Name {get; set;}
}
我希望能够这样装饰:
[Required]
[Unique]
public string Name {get; set;}
因此,如果名称已经在数据库中,则该模型将无效,并且在视图中的数据验证中将自动填充验证错误消息以达到该效果。
如何做到这一点?能做到吗
该项目使用注入到控制器中的存储库模型。DbContext是obvs。在网络项目中。
我认为无法在应用程序端完成,因为它应该与数据库一起检查。您可以Unique Index
用来防止重复数据。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<BoatMaker>()
.HasIndex(x => x.Name)
.IsUnique();
}
您可以处理重复数据的sql异常,并向用户显示适当的消息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句