在使用 C# 开发基于 Entity Framework Core(简称 EF Core)的应用程序时,EF Core数据注解(Data Annotations)是一种非常直观且强大的方式,用于配置实体类的数据库映射关系以及实现数据验证。本文将从零开始,手把手教你如何在项目中使用这些注解,即使是编程小白也能轻松上手。
EF Core数据注解是 .NET 提供的一组特性(Attributes),你可以直接在实体类的属性或类上添加这些特性,从而告诉 EF Core 如何将你的 C# 类映射到数据库表,或者在保存数据前进行哪些验证。
常见的用途包括:
下面我们通过一个简单的 User 实体类来演示几个最常用的注解。
using System.ComponentModel.DataAnnotations;using System.ComponentModel.DataAnnotations.Schema;namespace MyApp.Models{ [Table("Users")] public class User { [Key] public int Id { get; set; } [Required(ErrorMessage = "用户名不能为空")] [StringLength(50, MinimumLength = 3, ErrorMessage = "用户名长度必须在3到50之间")] public string Username { get; set; } = string.Empty; [Required] [EmailAddress(ErrorMessage = "请输入有效的邮箱地址")] public string Email { get; set; } = string.Empty; [Range(18, 120, ErrorMessage = "年龄必须在18到120岁之间")] public int Age { get; set; } [Column(TypeName = "decimal(18,2)")] public decimal Salary { get; set; } [NotMapped] public string FullName => $"{Username} ({Age}岁)"; }} 上面代码中使用了多个关键注解,我们逐个解释:
[Table("Users")]:指定该类映射到数据库中的 Users 表。[Key]:标记 Id 为主键。[Required]:表示该字段不能为空,常用于实现数据验证。[StringLength]:限制字符串长度,同时可设置最小和最大长度。[EmailAddress]:验证邮箱格式是否正确。[Range]:限制数值范围。[Column(TypeName = "decimal(18,2)")]:指定数据库中该列的数据类型。[NotMapped]:表示该属性不映射到数据库(例如计算属性)。仅仅添加注解并不会自动触发验证。你需要在保存数据前手动调用验证逻辑。例如在 ASP.NET Core 中,控制器会自动验证模型;而在控制台应用中,你可以这样手动验证:
using System.ComponentModel.DataAnnotations;var user = new User { Username = "ab", Email = "invalid-email", Age = 10 };var validationContext = new ValidationContext(user, null, null);var validationResults = new List<ValidationResult>();bool isValid = Validator.TryValidateObject(user, validationContext, validationResults, true);if (!isValid){ foreach (var error in validationResults) { Console.WriteLine(error.ErrorMessage); }} 运行上述代码,你会看到如下错误信息:
除了使用数据注解,EF Core 还支持通过 Fluent API 在 OnModelCreating 方法中配置模型。两者各有优劣:
| 方式 | 优点 | 缺点 |
|---|---|---|
| 数据注解 | 简洁直观,验证与模型定义在一起 | 污染实体类,耦合度高 |
| Fluent API | 保持实体类干净,集中管理配置 | 配置分散,学习成本略高 |
对于小型项目或快速原型开发,C#数据注解是非常高效的选择;而对于大型系统,建议结合使用 Fluent API 以提高可维护性。
通过本文,你已经掌握了 EF Core数据注解 的基本用法,包括如何定义主键、设置验证规则、自定义列名等。这些知识是使用 Entity Framework Core 构建健壮数据层的基础。
记住,合理使用数据注解不仅能提升开发效率,还能增强应用的数据安全性与一致性。赶快在你的项目中试试吧!
关键词回顾:EF Core数据注解、Entity Framework Core、数据验证、C#数据注解。
本文由主机测评网于2025-12-04发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122933.html