在EF Core中创建类通过实现IEntityTypeConfiguration<T>接口 实现实体类的伙伴类 实现FluentApi

1. EF Core 的配置 让开发者用对象操作的形式操作关系数据库 (比如查询现在主流的数据库大概分为两种,一个是传统的关系型数据库,在建表的时候利用外键把表与表联系起来;而另一种就是,比如 Mongodb,里面存的就是 json 字符串,是一个个对象有哪些ORM:EF Core、Dapper、SqlSugar、FreeSql等。 阅读详情

1 创建实体类:

 public partial class NewsCategory : IAggregationRoot
    {
        public NewsCategory() { }
        public Guid Id { get; set; }
        public string CategoryName { get; set; }
        public bool IsDel { get; set; }
        public string Code { get; set; }
    }

2.创建实体类的映射伙伴类

public class NewsCategoryMap : IEntityTypeConfiguration<NewsCategory>
    {
        public void Configure(EntityTypeBuilder<NewsCategory> builder)
        {
            builder.ToTable("NewsCategory");
        }
    }

3.在上下文中 重写 OnModelCreating方法 将伙伴类的应用上

 public class NewsEFCoreContext:DbContext,INewsContext
    {
       
        public DbSet<NewsCategory> Categories { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //先直接写连接字符串,生成数据库。后续再在配置文件中配置,并使用到此处
            optionsBuilder.UseSqlServer("Server=localhost;Database=wehope;User ID=sa;Password=0");
            //optionsBuilder.UseSqlServer(AppSetting.GetAppSetting("DealerContext"));
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.ApplyConfiguration<NewsCategory>(new NewsCategoryMap());
            base.OnModelCreating(modelBuilder); 
        }
    }

完成。
在这里插入图片描述


EF Core如何使用IEntityTypeConfiguration<TEntity>

首先构建IEntityTypeConfiguration<T>抽象泛型继承类KopEntityTypeConfiguration

public abstract class KopEntityTypeConfiguration<T> : IEntityTypeConfiguration<T>

创建基于 KopEntityTypeConfiguration类的 GroupMappingMap

public class GroupMappingMap : KopEntityTypeConfiguration<GroupMapping>

实现 KopEntityTypeConfiguration类的 Configure函数

public override void Configure(EntityTypeBuilder<GroupMapping> builder)

在数据上下文 ApplicationDbContext : DbContext实现的 OnModelCreating函数中,使用ModelBuilder实现应用设置

OnModelCreating函数的全部代码是

protected override void OnModelCreating(ModelBuilder builder)
        {
            builder.ApplyConfiguration(new GroupMappingMap());//应用设置
            base.OnModelCreating(builder);
            // Customize the ASP.NET Identity model and override the defaults if needed.
            // For example, you can rename the ASP.NET Identity table names and more.
            // Add your customizations after calling base.OnModelCreating(builder);
        }
ASP.NET Core学习之路04 什么是微服务,什么是DDD,DDD之领域事件、集成事件,用MediatR实现领域事件、RabbitMQ简介、DDD聚合在.NET中的实现 阅读详情

相关推荐

ASP.NET Core 中 Identity 框架的使用

ASP.NET Core 中 Identity 框架的使用

m0_51005282的博客 925

IEntityTypeConfiguration

第一步:创建一个类库,我把这个类库的名字叫做BF.Entities ,这个类库主要是放了我们的EF的上下文DbContext类等,还有类的模型   第二步:创建模型类  public class Book { public int Id { get; set; } //书名 public string BookName { get; set; } //作者姓...

Fanbin168的专栏 2968

通过Scrapy爬虫抓取Deep Learning领域的论文数据

然而,大部分高质量的deep learning研究论文都是通过国际顶尖学术会议(如neurips、iclr、icml等)发表的,而这些论文的获取难度较大。在本文中,我们选择抓取arXiv的数据。arXiv是一个管理科学论文的网站,其中包括了许多领域的论文,也包括了Deep Learning领域的论文。同时,arXiv网站还提供了方便的API接口,使得我们的爬虫程序可以很方便地获取论文数据。通过结合其他的数据处理技术,我们可以对这些数据进行更深入的研究和分析,从而推动Deep Learning领域的发展。

Ob2024的博客 609

.Net EF Core IEntityTypeConfiguration之CodeFirst实现(SqlServer)

针对.net core EF框架下的CodeFirst实现(Webapi项目) 1、配置文件appsettings.json配置数据库连接 "ConnectionStrings": { "SOADBContext": "Data Source=.;Initial Catalog=RextecSOA;User=sa;Password=123456" //sqlserver } ...

liwan09的博客 2808

adb 通信协议分析以及实现 (三) (Adb 网络通信部分解析)

这篇文章说下adb 和adb 服务进程之间通信的socket 协议。  adb 服务进程启动之后,会监视本地的5037 端口,使用的是TCP 协议,所以adb 发送的命令其实就是往本地的5037 端口发送数据,做过网络编程的都知道,本机可以用127.0.0.1 ip地址。 有了ip 地址和端口号socket 通信就没问题 1)  命令发送方式      

inforecovvery的博客 2868

【Chipyard】Gemmini快速上手

Gemmini 加速器在 ResNet50 推理任务中表现出计算密集型优势,核心操作周期分布符合深度学习模型特征,推理预测流程完整且测试通过,为后续硬件优化和模型部署提供了有效参考。

2353

C# 数据操作系列 - 6 EF Core 配置映射关系

0. 前言 在《C# 数据操作系列 - 5. EF Core 入门》篇中,我们简单的通过两个类演示了一下EF增删改查等功能。细心的小伙伴可能看了生成的DDL SQL 语句,在里面发现了些端倪。没看的小伙伴也不急,这就贴出来。 public class ModelA { public int Id { get; set; } public string Name { get; set; } public List<ModelB> ModelBs { get; } = new

菜鸡成长日记 2128

一文读懂 MAVLink、PPM、SBUS:无人机通信协议的工作原理与适用场景

本文系统对比无人机领域三大核心通信协议:MAVLink作为全链路数据协议,支持飞控与地面站的双向通信,适合航拍测绘等专业场景;SBUS是数字化的高效控制协议,具备16通道、抗干扰特性,成为中高端设备标配;PPM作为传统模拟协议,成本低廉但性能有限,适合入门级应用。文章深入解析各协议的工作原理、帧结构、适用场景及调试技巧,指出MAVLink侧重状态监控、SBUS/PPM专注控制指令的互补关系,并给出新手选型建议:入门选PPM,进阶用SBUS,开发必备M

bother3000的博客 7121

自己编写 EntityTypeConfiguration

1.新建类库 EFCore.EntityTypeConfig,安装nuget PM> Install-Package Microsoft.EntityFrameworkCore 2.新建接口IEntityTypeConfiguration using Microsoft.EntityFrameworkCore; using Microsoft.EntityFram...

weixin_30604651的博客 447

21天教你学会PCIe专栏(21)--项目实例:构建一个基于 PCIe 的 NVMe SSD 阵列存储系统

构建一个高性能的 NVMe SSD 阵列存储系统,利用 PCIe 连接多块 NVMe SSD,实现高带宽和低延迟的数据存储。该系统将支持多种存储配置,如 RAID 0、RAID 1 和 RAID 5,以满足不同的性能和可靠性需求。通过上述步骤,你可以构建一个基于 PCIe 的 NVMe SSD 阵列存储系统。这个系统能够提供高带宽和低延迟的数据存储,并支持多种 RAID 配置以满足不同的性能和可靠性需求。

xiaoheshang_123的博客 200

在 SAP HANA 里为视图创建 Analytic Privilege,真正把同一份数据按角色切开

摘要:本文介绍了SAP HANA中基于业务角色的动态数据权限控制方法。通过Analytic Privilege技术,可以在同一视图上为不同角色设置不同的数据访问范围,实现行级安全控制。核心机制包括:1) 创建带有STRUCTURED PRIVILEGE CHECK的视图;2) 建立授权对象和用户映射表;3) 开发条件提供过程动态生成过滤条件;4) 创建结构化权限对象绑定条件提供器。这种设计使权限规则与业务数据解耦,便于维护变更,适合销售区域、财务数据等多角色访问控制场景。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2390

EntityFramework Core 的实体配置类的使用 IEntityTypeConfiguration

首先,我们定义一个简单的实体类Product。set;set;set;通过接口,EFCore允许开发者把实体的配置与实体类本身分离,使得代码更具可维护性和可扩展性。你可以用它来配置表名、主键、字段约束、外键关系等。对于大型项目,使用这种方法来集中管理模型配置非常有帮助。

情绪不稳定的98年程序员 1404

结构力学本构模型:复合材料模型:复合材料热力学行为技术教程_2024-08-07_06-54-53.Tex

热塑性复合材料是一种由热塑性树脂基体和增强纤维组成的复合材料。与热固性复合材料不同,热塑性复合材料在加热时可以软化,冷却时硬化,这一过程可以重复进行,因此它们具有可回收和可再加工的特性。热塑性树脂,如聚酰胺(尼龙)、聚碳酸酯、聚醚醚酮(PEEK)等,与碳纤维、玻璃纤维等增强材料结合,可以制备出具有高强度、高刚度和良好耐热性的复合材料。热粘弹性理论是研究材料在温度变化和时间依赖性载荷作用下的变形和应力响应。复合材料,由于其独特的微观结构,展现出复杂的热粘弹性行为。

807

Entity Framework Code First 映射

Fluent API 一千道一万,EF还是一个ORM工具,映射永远是最核心的部分。所以接下来详细介绍Code First模式下EF的映射配置。 通过Code First来实现映射模型有两种方式Data Annotation和Fluent API。 Data Annotation需要在实体类(我通常的称呼,一般就是一个Plain Object)的属性上以Attribute的方式表示主键、外键等映射信息。 这种方式不符合解耦合的要求所以一般不建议使用。 第二种方式就是要重点介绍的Fluent API。Fluen

极客神殿 481

【产品经理修炼之道】- 优惠券系统从入门到精通(二)

在电商平台中,优惠券的使用场景与频次都很高。那么如何做好一个优惠券系统呢?本文总结了相关流程和设计思路,希望对你有所帮助。上一篇与大家分享了架构中的前端应用、生命周期、优惠券管理中OpenAPI 、基础系统,今天继续与大家分享架构图中优惠券模板部分。

xiaoli8748的专栏 1290

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

EntityTypeConfiguration

我们配置的实体都都在OnModelCreating方法中,如果有很多实体的话,OnModelCreating方法管理很麻烦 我们可以用单独的类来管理配置,继承EntityTypeConfiguration类实现 public class StudentEntityConfiguration: EntityTypeConfiguration { public StudentEnt

kxinyu的专栏 1643

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

EF Core如何使用IEntityTypeConfiguration<TEntity>

首先构建IEntityTypeConfiguration抽象泛型继承类KopEntityTypeConfiguration public abstract class KopEntityTypeConfiguration : IEntityTypeConfiguration 创建基于KopEntityTypeConfiguration类的GroupMappingMap public clas

赫的BLOG 5751

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

EF使用EntityTypeConfiguration配置映射关系

我们可以定义一个继承自EntityTypeConfiguration<>泛型类的类来定义domain中每个类的数据库配置,我们在这个自定义类的构造函数中使用我们上次提到的那些方法配置数据库的映射。 实体类关系的映射 实体类映射中,关系的映射配置在关系的两端都可以配置。例如,用户信息与登录信息的 一对多 关系可以在用户信息端配置: HasMany(m => m.Logi...

weixin_30326741的博客 651

EFCore 2.0的IEntityTypeConfiguration<TEntity>的使用!

通过新建一个类来实现 IEntityTypeConfiguration 这个接口,将EFCore中的实体配置写在单独的配置类中,便于修改和维护。   OnModelCreating代码:      protected override void OnModelCreating(ModelBuilder modelBuilder) { base...

weixin_30376453的博客 711

EFcore的实体类配置

该文章使用的是MySQL的数据库,这里使用到了模型驱动开发的模式【现有实体类,后有数据库表。需要使用到迁移指令的使用,本篇文章的重点不是迁移指令的使用,所以忽略该内容】Data Annotation 相较于使用FluentAPI的方式更为简洁,只需要使用特性标注即可,不需要单独的写配置类,不过FluentAPI更为强大,能够完全替代Data Annotation ,但是使用特性的方式则无法完全取代FluentAPI。

contact97的博客 1178

【asp.net core 系列】8 实战之 利用 EF Core 完成数据操作层的实现

0. 前言 通过前两篇,我们创建了一个项目,并规定了一个基本的数据层访问接口。这一篇,我们将以EF Core为例演示一下数据层访问接口如何实现,以及实现中需要注意的地方。 1. 添加EF Core 先在数据层实现层引入 EF Core: cd Domain.Implements dotnet add package Microsoft.EntityFrameworkCore 当前项目以SqlLite为例,所以再添加一个SqlLite数据库驱动: dotnet add package Microsoft.En

菜鸡成长日记 1831

登录注册的小项目对比.Net Core与 .Net Framework的一些区别

一、需求: 1、功能只有登录、注册。 二、架构: 1、分别为 UserSys.IServices:主要有实体和对实体的配置,还有对实体的操作接口 UserSys.Services :主要是对自IService层中的接口实现 UserSys.DTO :主要是我们Web层中需要什么实体就给传递什么实体 UserSys.Common:一些通用的组件封装到该类库中 ...

张晨光老师的播客 786

EF Core关系配置

EF Core关系配置一对多、一对多关系数据的获取、获取指定字段、只获取外键id、导航属性、 引用的组织结构树、一对一、多对多、基于关系的复杂查询、有了IEnumerable还要IQueryable、IQueryable的延迟执行 IQueryable的复用、IQueryable底层是如何读取数据的、EF Core中的异步方法如何异步遍历IQueryable、EF Core执行非查询原生SQL语句 执行实体相关查询原生SQL语句、执行任意原生SQL查询语句、EFCore如何跟踪实体数据变化、EF Core优

Lifelong learning 4933

杨中科 .NETCORE EFCORE 第一部分 基本使用

1、说明: 本课程需要你有数据库、SOL等基础知识。让开发者用对象操作的形式操作关系数据库3、有哪些ORM: EF core(官方推荐)、Dapper、SqlSugar、FreeSql等。

weixin_43847546的博客 1974

EntityTypeConfiguration 映射关系

我们可以定义一个继承自EntityTypeConfiguration&lt;&gt;泛型类的类来定义domain中每个类的数据库配置,我们在这个自定义类的构造函数中使用我们上次提到的那些方法配置数据库的映射。 实体类关系的映射实体类映射中,关系的映射配置在关系的两端都可以配置。例如,用户信息与登录信息的 一对多 关系可以在用户信息端配置:HasMany(m =&gt; m.LoginLogs).W...

stoneLSL的博客 1870

【译】第22节---Fluent API - EntityTypeConfiguration类

原文:http://www.entityframeworktutorial.net/code-first/entitytypeconfiguration-class.aspx 在我们开始使用Fluent API进行配置之前,我们来看看一个重要的Fluent API类。 EntityTypeConfiguration是Fluent API中的一个重要类。 EntityTypeConf...

Travelling1006的专栏 202
上一篇: NPOI之Excel——合并单元格、设置样式、输入公式
下一篇: HttpRequest中常见的四种ContentType
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值