使用数据注解

实体类通常是在Models目录下,直接在实体类上添加属性注解,比如[Required]/[Key]等.

using System.ComponentModel.DataAnnotations;

public class User()
{
[Key]
public string UserId { get; set; } [Required]
public string UserName { get; set; }
}

重写配置方法

在自己实现的XxxDbContext数据库上下文类中重写配置方法,用Fluent API的方式添加所有实体的配置.

using Microsoft.EntityFrameworkCore;

public partial class XxxDbContext : DbContext
{
public XxxDbContext()
{
} public HaoyikuDbContext(DbContextOptions<HaoyikuDbContext> options)
: base(options)
{
} public DbSet<User> Users { get; set; } // 重写以下方法
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// 添加实体的配置
modelBuilder.Entity<BizOrderPush>().HasKey();
}
}

实现实体类配置接口

  • 新建ModelConfigurations目录,在该目录下新增每一个实体对应的配置类.
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders; /// <summary>
/// 用户实体-模型配置
/// </summary>
public class UserConfiguration : IEntityTypeConfiguration<User>
{
public void Configure(EntityTypeBuilder<User> builder)
{
builder.HasKey(o => o.UserId);
builder.Property(o => o.UserName).IsRequired();
}
}

单独配置每一个实体类后,通过以下方法设置

using Microsoft.EntityFrameworkCore;

public partial class XxxDbContext : DbContext
{
public XxxDbContext()
{
} public HaoyikuDbContext(DbContextOptions<HaoyikuDbContext> options)
: base(options)
{
} public DbSet<User> Users { get; set; } // 重写以下方法
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// 添加实体的配置
modelBuilder.ApplyConfiguration(new UserConfiguration());
base.OnModelCreating(modelBuilder);
}
}

以上几种方式可以共存,至于到底用哪种,推荐用哪种,各位看着办吧.

参考

EntityFrameworkCore 中实体的几种配置方法的更多相关文章

  1. CentOS中JDK的三种配置方法

    第一种方法(相对稳妥): 使用yum直接安装,在root用户下执行 "yum install java-openjdk-*" 第二种方法(最为稳妥): 前往'https://www ...

  2. struts2拦截器interceptor的三种配置方法

    1.struts2拦截器interceptor的三种配置方法 方法1. 普通配置法 <struts> <package name="struts2" extend ...

  3. Java数据库连接池的几种配置方法(以MySQL数据库为例)

    Java数据库连接池的几种配置方法(以MySQL数据库为例) 一.Tomcat配置数据源: 前提:需要将连接MySQL数据库驱动jar包放进Tomcat安装目录中common文件夹下的lib目录中 1 ...

  4. Jquery中each的三种遍历方法

    Jquery中each的三种遍历方法 $.post("urladdr", { "data" : "data" }, function(dat ...

  5. qt qml中PropertyAnimation的几种使用方法

    qml文章 qt qml中PropertyAnimation的几种使用方法 动画应用场景有以下几种: 首先如果一个Rectangle.动画是要改变它的x和y值 1,Rectangle一旦被创建,就要移 ...

  6. JS 中深拷贝的几种实现方法

    JS 中深拷贝的几种实现方法1.使用递归的方式实现深拷贝 //使用递归的方式实现数组.对象的深拷贝 function deepClone1(obj) { //判断拷贝的要进行深拷贝的是数组还是对象,是 ...

  7. stl中map的四种插入方法总结

    stl中map的四种插入方法总结方法一:pair例:map<int, string> mp;mp.insert(pair<int,string>(1,"aaaaa&q ...

  8. python中常用的九种预处理方法

    本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardization or Mean Removal ...

  9. 数据库连接池在Tomcat中的几种配置方法

    数据库连接是一种关键的有限的昂贵的资源,这在多用户网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标,数据库连接池正是针对这个问题提出的. ...

  10. spring 整合 mybatis 中数据源的几种配置方式

    因为spring 整合mybatis的过程中, 有好几种整合方式,尤其是数据源那块,经常看到不一样的配置方式,总感觉有点乱,所以今天有空总结下. 一.采用org.mybatis.spring.mapp ...

随机推荐

  1. 使用Vue+ElementUI实现前端分页

    背景 项目中要做一个公共的附件展示列表,针对某个模块某条记录展示,因此附件不会是大数据量,采用前端分页,使用Vue.JS+ElementUI布局展示,axios请求数据. 步骤 一.Html页面中引入 ...

  2. 1011. 在 D 天内送达包裹的能力

    在 D 天内送达包裹的能力 传送带上的包裹必须在 days 天内从一个港口运送到另一个港口. 传送带上的第 i 个包裹的重量为 weights[i].每一天,我们都会按给出重量(weights)的顺序 ...

  3. 分布式数据库NoSQL简介

    NoSQL第一部分   一.什么是NoSQL? 问题:12306在开始诞生的前几年,每到重大节假日,经常"瘫痪",直接原因就是集中超负荷的访问量.技术原因是它在此期间所采用的国际著 ...

  4. spring-springMVC-总结列表

    Spring 的优良特性 非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API 控制反转:IOC--Inversion of Control,指的是将对象的创建权交给 Spri ...

  5. weixueyuan-Nginx负载均衡7

    https://www.weixueyuan.net/nginx/load_balanc/ Nginx负载均衡模块简述 Nginx 负载均衡是由代理模块和上游(upstream)模块共同实现的,Ngi ...

  6. biancheng-Python爬虫教程

    http://c.biancheng.net/python_spider/ 网络爬虫又称网络蜘蛛.网络机器人,它是一种按照一定的规则自动浏览.检索网页信息的程序或者脚本.网络爬虫能够自动请求网页,并将 ...

  7. linux服务器通过rpm包安装nginx案例

    [rpm安装nginx] 普通用户执行安装命令:sudo rpm -ivh nginx-1.19.5-1.el7.ngx.x86_64.rpm 安装过程很简单,如下: 显示信息 nginx-1:1.1 ...

  8. Linux 虚拟机中不重启的情况下加新硬盘及扩展根分区容量

    我这个系统是Redhat7.7的系统.磁盘占用比较高,需要扩充空用空间,同时又不能关停服务器,或者服务.所以就需要在虚拟机中不重启的情况下加新硬盘及扩展根分区容量. 首先,看一下我这个虚拟机分区占用情 ...

  9. HTML布局常用标签——div和span

    HTML布局常用标签--div和span 在HTML的世界里,div和span是两位不可或缺的老朋友,它们虽然看似简单,却在网页布局和样式设计中发挥着举足轻重的作用.今天,我们就来聊聊这两位" ...

  10. 常用Maven命令

    一.常用命令 1.1 打包 mvn clean package -DskipTests 指定环境 mvn clean install -Dmaven.test.skip=true -Pprod-tx ...