首页 > 其他分享 >Entity Framwork Core 数据注解(Data Annotations)使用方法

Entity Framwork Core 数据注解(Data Annotations)使用方法

时间:2024-05-20 15:19:59浏览次数:11  
标签:Core set string get int class Framwork Entity public

在Entity Framework Core中,数据注解(Data Annotations)是通过在实体类的属性上使用特性(Attributes)来配置实体与数据库之间的映射关系的一种方式。这种方式比较直观且易于理解,特别适用于简单的配置需求。下面是一些使用数据注解配置实体的C#示例:

1. 配置主键

public class Blog
{
    [Key]
    public int BlogId { get; set; }
    
    public string Url { get; set; }
    
    // 其他属性...
}

 

2. 配置列名

public class Blog
{
    public int BlogId { get; set; }
    
    [Column("BlogURL")]
    public string Url { get; set; }
    
    // 其他属性...
}

 

3. 配置必需字段和最大长度

public class Blog
{
    public int BlogId { get; set; }
    
    [Required]
    [MaxLength(200)]
    public string Title { get; set; }
    
    // 其他属性...
}

 

4. 配置数据类型和精度

public class Product
{
    public int ProductId { get; set; }
    
    public string Name { get; set; }
    
    [Column(TypeName = "decimal(18, 2)")]
    public decimal Price { get; set; }
    
    // 其他属性...
}

 

5. 配置并发令牌

public class Blog
{
    public int BlogId { get; set; }
    
    public string Url { get; set; }
    
    [Timestamp]
    public byte[] RowVersion { get; set; }
    
    // 其他属性...
}

 

6. 配置导航属性和外键

public class Blog
{
    public int BlogId { get; set; }
    
    public string Url { get; set; }
    
    public List<Post> Posts { get; set; }
}

 



public class Post
{
    public int PostId { get; set; }
    
    public string Title { get; set; }
    
    public string Content { get; set; }
    
    public int BlogId { get; set; }
    
    [ForeignKey("BlogId")]
    public Blog Blog { get; set; }
}

 

 

7. 配置不映射到数据库的属性

public class Blog
{
    public int BlogId { get; set; }
    
    public string Url { get; set; }
    
    [NotMapped]
    public string DisplayUrl => $"http://example.com/{Url}";
}

 

8. 配置索引

public class Blog
{
    public int BlogId { get; set; }
    
    [Index]
    public string Url { get; set; }
    
    // 其他属性...
}

 

9. 配置唯一约束

public class User
{
    public int UserId { get; set; }
    
    [Index(IsUnique = true)]
    public string Email { get; set; }
    
    // 其他属性...
}

 

在使用数据注解时,您不需要在DbContextOnModelCreating方法中显式配置实体,因为EF Core会在运行时自动解析这些特性并应用相应的配置。不过,对于更复杂的配置需求,您可能需要结合使用Fluent API以获得更大的灵活性和控制力。在实际项目中,通常建议根据具体情况选择合适的配置方式。

标签:Core,set,string,get,int,class,Framwork,Entity,public
From: https://www.cnblogs.com/jianxiaoxiu/p/18202033

相关文章

  • .NetCore工具
    1、更新GeneralUpdate:Myshiplooksold,whocanhelpmeupgradeit.(gitee.com)GeneralUpdate是一款基于.NETStandard2.0开源自动升级组件。运行环境:.NET7、.NETMAUI、Visualstudio2022(Preview)功能是否支持备注断点续传支持单次更新失败时,下次一次启动时......
  • ASP.NET Core应用程序7:使用视图组件
      视图组件是类,为支持分部视图或者在父视图中注入少量Html或Json数据提供了应用程序逻辑。1准备工作  Models文件夹中添加City.cs类和CitiesData类,为CitiesData添加服务。publicclassCity{publicstringName{get;set;}publicstringCo......
  • 在 ASP.NET Core 中使用托管服务实现后台任务
    在ASP.NETCore中,后台任务作为托管服务实现。托管服务是一个类,具有实现 IHostedService 接口的后台任务逻辑。本文提供了三个托管服务示例:在计时器上运行的后台任务。激活有作用域的服务的托管服务。有作用域的服务可使用依赖项注入(DI)。按顺序运行的已排队后台任务......
  • net core jwt的基本原理和实现
    NETCore中的JWT(JSONWebToken)基本原理和实现主要涉及到身份验证和授权的过程。以下是对JWT原理和实现的简要概述:JWT原理JWT是一种开放标准(RFC7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。这些信息可以被验证和信任,因为它们是数......
  • 基于Azure DevOps 的 CICD 项目部署(.Net Core)
    基于AzureDevOps的CICD项目部署(.NetCore)使用微软的来进行CICD链接:https://dev.azure.com创建新项目创建项目名称选择仓库地址选择空模板创建代理池按照以下步骤把代理部署到服务器上![连接你的服务器创建新的文件夹mkdirmyange......
  • Asp-Net-Core开发笔记:使用ActionFilterAttribute实现非侵入式的参数校验
    前言在现代应用开发中,确保API的安全性和可靠性至关重要。面向切面编程(AOP)通过将横切关注点(如验证、日志记录、异常处理)与核心业务逻辑分离,极大地提升了代码的模块化和可维护性。在ASP.NETCore中,利用ActionFilterAttribute可以方便地实现AOP的理念,能够以简洁、高效的方式进行自......
  • (报错)ROS2:WARNING:colcon.colcon_core.package_selection:ignoring unknown package
    在使用colcon编译时,如果直接对所有包编译colconbuild则不会有问题,但是针对单独某个包编译colconbuild--packages-select<pkg>则报错WARNING:colcon.colcon_core.package_selection:ignoringunknownpackagegg了一下找到了问题参考:https://unix.stackexchange.co......
  • ABP 框架 AutoMapper 映射实体时提示 Unmapped members were found 缺少 FullAuditedE
    在配置MapperProfile的时候, 运行提示映射出错:对于Workflow->WorkflowDto和CreateUpdateWorkflowDto->Workflow的映射,存在没有映射的属性 IsDeleted,DeleterId,DeletionTime,LastModificationTime,LastModifierId,CreationTime和CreatorId。我之前写代码都没有映射这......
  • ASP.NET Core Web中使用AutoMapper进行对象映射
    前言在日常开发中,我们常常需要将一个对象映射到另一个对象,这个过程中可能需要编写大量的重复性代码,如果每次都手动编写,不仅会影响开发效率,而且当项目越来越复杂、庞大的时候还容易出现错误。为了解决这个问题,对象映射库就随之而出了,这些库可以自动完成对象之间的映射,从而减少大量......
  • windows 安装.net6core webapi
    windows安装.net6corewebapi:1.下载安装dotnet-hosting-6.0.0-win.exe(Windows HostingBundle--runtime)https://dotnet.microsoft.com/en-us/download/dotnet/6.02..netcorewebapi右键发布publish,复制发布的文件到windows服务器iis站点webapi3.启动windowspowersh......