首页 > 其他分享 >netcore模型配置

netcore模型配置

时间:2023-07-18 14:36:34浏览次数:30  
标签:Category set get 模型 配置 Entity modelBuilder netcore public

模型配置可以通过Fluent API和注解的方式

  1. FluentAPI步骤
    1.  新建Products 和Category类

      新建Products类

      Products
      public class Product
          {
              public int Id { get; set; }
      
              public string Name { get; set; }
      
              public decimal Price { get; set; }
      
              public int CategoryId { get; set; }
      
              public virtual Category Category { get; set; }
      
              public string Description { get; set; }
      
              public DateTime CreateTime { get; set; }
      
              public DateTime UpdateTime { get; set; }
          }

       

       

      新建Category类

      Category
       public class Category
          {
              public int Id { get; set; }
      
              public string Name { get; set; }
      
              public ICollection<Product> Products { get; set; }
          }
  2. 他们之间存在一对多的关系
配置实体属性
protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            #region Product
            modelBuilder.Entity<Product>().ToTable("Products", "dbo")
                .Property(p => p.Name)
                .HasColumnName("ProductName");//配置表名 列名

            modelBuilder.Entity<Product>().HasKey(r => r.Id);//配置主键
    
            modelBuilder.Entity<Product>()
                .Property(r => r.Name).IsRequired()
                .HasMaxLength(500);//配置长度 和必填

            modelBuilder.Entity<Product>()
                .Property(r => r.CreateTime).HasDefaultValue(DateTime.Now);//配置默认值


            modelBuilder.Entity<Product>()
                .Property(r => r.Price).HasColumnType("decimal(18,2)").IsRequired();

            #endregion
            #region Category
            modelBuilder.Entity<Category>().ToTable("Categories", "dbo")
                .Property(c => c.Name)
                .HasColumnName("CategoryName");
            modelBuilder.Entity<Category>().HasKey(r => r.Id);
            modelBuilder.Entity<Product>()
                .HasOne(p => p.Category)
                .WithMany(c => c.Products)
                .HasForeignKey(p => p.CategoryId);
            #endregion
            base.OnModelCreating(modelBuilder);
        }

Fluent API  配置一对一的关系

一对一关系表示两个实体存在唯一的关系,每个实体只能关联到另一个实体

新建User和UserAddress类

User类
  public class User
    {
        public int Id { get; set; }

        public string UserName { get; set; }

        public UserAddress UserAddress { get; set; }
    }

FluentAPI 中多对多关系

例如Student和Course之间存在多对多关系

Student
  public class Student
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public ICollection<Course> Courses { get; set; }
    }

 

Course
  public class Course
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public ICollection<Student> Students { get; set; }
    }
OnModelCreating中配置
   modelBuilder.Entity<Student>()
                .HasMany(r => r.Courses)
                .WithMany(r => r.Students)
                .UsingEntity(r => r.ToTable("StudentCourse"));
            #endregion
            base.OnModelCreating(modelBuilder);

 

注解形式
数据注解通过实体类的属性添加特性来指定配置信息

  • [Key]指定主键属性
  • [Require]指定必填属性(非空)
  • [MaxLength(100)]最大为100的长度,字符串属性的最大长度
  • [ColumnName("ProductName")] 用于指定属性列对应的数据库列名
  • [Table("Products")]用于指定实体对应数据库的表名
  • [ForeignKey("ColumnID")]:用于指定外键属性
  •  
  1.  

标签:Category,set,get,模型,配置,Entity,modelBuilder,netcore,public
From: https://www.cnblogs.com/xiaoxi888/p/17562757.html

相关文章

  • @NacosConfigListener注解监听配置变化失效解决
    项目初始配置:maven依赖如下:<!--配置与发现依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency&g......
  • win10小狼毫配置实操笔记
    下载安装进入官方网站下载最新版小狼毫,安装后选择朙(明)月拼音。在配置前阅读官方文档有关用户文件夹和共享文件夹的介绍。default.yaml用来调试全局方案,定制该文件后切换其他比如五笔、双拼等方案时,其定制内容依旧适用。weasel.yaml用来修改rime的常规设置,定制外观。symbol......
  • H3C交换机SSH登录配置截图
    使用console线连接电脑和设备,登录设备界面。首先进行第一步:创建用户创建用户后,然后设置vty允许的管理方式:最后一步:开启ssh功能......
  • Nginx:超时 keeplive_timeout 配置
    参考:Nginx的超时keeplive_timeout配置详解HTTP是一种无状态协议,客户端向服务器发送一个TCP请求,服务端响应完毕后断开连接。如果客户端向服务器发送多个请求,每个请求都要建立各自独立的连接以传输数据。HTTP有一个KeepAlive模式,它告诉webserver在处理完一个请求后保持......
  • unraid配置设置开启vpη WireGuard隧道peer
    unraid6.12版本自带WireGuard,在外访问家庭设备iosiPhone第一步,路由器打开51820端口,并添加端口转发到unraid第二步,设置-vpη管理器添加,填写名称和本地端点即可,需要当前公网ip或者ddns的域名,还没有ddns的博主推荐namesilo-ddns接着添加peer,只需填写名称和类型即可点击应......
  • Nginx负载均衡配置
    Nginx负载均衡实现:需求:两台Web:192.168.1.2/192.168.1.3,nginx负载均衡服务器192.168.1.10Nginx服务器上实现web负载。 配置步骤:1.安装Nginx  (1)安装依赖包  yuminstall-ypcrepcre-developensslopenssl-develgccgccgcc-c++ncurses-develperl  use......
  • Nginx部署/反向代理配置
    1.Nginx用途介绍  主要技术:地址转换  负载均衡:将客户单请求,按照一定的规则分配到一群服务器上,并将处理结果返回给相应的客户端  作用:负责调度客户端请求、消除单点故障、减少错误返回结果、session持久化。  反向代理:客户端请求,经过反向代理,分发到各服务器,然后服务......
  • 多路径软件及其安装与配置
    什么是存储多路径?存储多路径是指存储设备通过多条链路与主机一个或多个网卡连接,通过存储设备的控制器控制数据流的路径,实现数据流的负荷分担,保证存储设备与主机连接的可靠性。主机上每个SCSI设备都具有一个SCSI地址,该地址由initiatorID(或称为hostID)、targetID以及LUN组成;......
  • Hadoop的hdfs云服务器配置踩坑记录
    本章更多的是通过hdfs的API接口问题角度记录坑点坑点记录一、能够远程访问和通过web端访问hdfs在java代码中添加或更改如下:Configurationconf=newConfiguration();conf.set("dfs.client.use.datanode.hostname","true");//添加此配置信息即可FileSystemfs=FileSys......
  • 在树莓派启动分区创建配置文件,使其加入无线网络
    在树莓派的启动分区创建一个名为“wpa_supplicant.conf”配置文件,在文件中输入以下内容:country=CNctrl_interface=DIR=/var/run/wpa_supplicantGROUP=netdevupdate_config=1network={ssid="xxx"psk="xxx"priority=5}ssid:指定要连接的无线网络psk:网络......