首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

01-EF Core笔记之创建模型

映射到数据库必填可空,在约定情况下,CLR可为null属性将被映射为数据库可空字段,不能为null属性映射为数据库必填字段。...EF是实体框架,它实体会映射到关系型数据库。所以通过关系型数据库表之间关系更容易理解实体关系。...):基类子类不在同一个表,子类包含基类所有字段,目前EF Core不支持该模式 EF Core仅支持TPH模式,基类子类数据将存储在同一个表。..."Discriminator") .HasMaxLength(200); EF Core允许我们通过FluentAPI方式自定义鉴别器列名每个类对应值: modelBuilder.Entity...查询类型很有用,EF Core不会对它进行跟踪,也不允许新增、修改删除操作,但是在映射到视图、查询对象、Sql语句查询、只读库表等情况下用到。

3K20

.NET Core开发实战(第29课:定义仓储:使用EF Core实现仓储层)--学习笔记

29 | 定义仓储:使用EF Core实现仓储层 首先定义仓储层接口,以及仓储层实现基类,抽象类 仓储层接口 namespace GeekTime.Infrastructure.Core {.../// 坏处是任意删除都需要先去数据库里面做查询 /// /// ...")); 启动程序,运行过程 EF 框架会根据定义实体映射关系生成数据库,可在 Mysql 数据库查看生成结果 接着丰富一下 Order 映射关系 namespace GeekTime.Infrastructure.EntityConfigurations...p => p.ZipCode).HasMaxLength(10); }); } } } 启动程序,可以看到数据库修改结果 这说明可以在仓储层定义领域模型与数据库映射关系...这样一来就完成了仓储层定义,可以看到仓储层代码非常薄,仅仅包含了一些接口定义继承,需要自定义一些方法时候,可以在仓储层定义一些特殊方法,比如 AddABC 等特殊逻辑都可以在这里去实现

2K11
您找到你想要的搜索结果了吗?
是的
没有找到

.NET EF Core(Entity Framework Core)

优点:简单,N分钟即可上手,行为可预期性强;缺点:生产效率低,需要处理底层数据库差异。...4、EF一些类命名空间以及一些方法名字在EF Core稍有不同。 5、EF不再做新特性增加。...;Username=postgres;Password=123456"); EF Core实体配置 主要规则: 1:表名采用DbContext对应DbSet 属性名。...2:数据表列名字采用实体类属性名字,列数据类型采用实体类属性类型最兼容类型。 3:数据表列可空性 取决于对应实体类属性可空性。...MYSQL方案:select * from T_Houses where Id=1 for update 如果有其他查询操作也使用for update来查询Id=1这条数据的话,那些查询就会被挂起

10611

Entity Framework 一对多关系映射

EF关系映射也是一个很关键内容,关系映射属性映射一样,也是在 OnModelCreating 配置映射。...EF关系映射有如下三种: One-to-Many Relationship(一对多) Many-to-Many Relationship(多对多) One-to-One Relationship(一对一...一个客户可以有多个订单,但一个订单只能属于一个客户,所以我们用到了EF HasRequired,一个客户又存在多个订单,因此也使用到了 WithMany ,同时 Order 表中有 CustomerId...,如果将所有实体类映射直接写在 OnModelCreating 中会造成代码臃肿,不易维护,因此我们在这里将每个类映射写在对应映射文件,最后再将每个类映射类注册到 OnModelCreating... 注2:上述代码描述是从客户方向连编写关系映射,如果以订单角度来编写关系映射的话,只需删掉CustomerMap关系配置,在OrderMap增加关系配置部分修改如下: HasRequired

96910

Entity Framework 多对多映射

上一篇文章我们讲解了EF一对对多关系映射,这篇文章我们讲解EF多对多(Many-to-Many Relationship)关系映射。...这个第三张表被称为关联表或链接表,这张表存存储了学生课程主键(或被能够区分唯一性字段)。...我们为了实现学生课程多对多关系,于是定义了关联表,并且设置了这个关联表两个外键名称。...注: 在设置多对多关系时候,如果不定义 MapLeftKey MapRightKey EF将默认使用 实体类型_id 。...在本例如果不定义这两个键名称的话,EF默认使用名称是 Student_Id Courses_Id; MapLeftKey 是关系键 下面我们编写一段代码来测试一下数据库生成是否是多对多关系

1K20

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

EF Core 入门》篇,我们简单通过两个类演示了一下EF增删改查等功能。细心小伙伴可能看了生成DDL SQL 语句,在里面发现了些端倪。没看小伙伴也不急,这就贴出来。...对于其他属性,EF会自动按照同名形式映射到数据表。 对于外键,如果在类里添加了引用类型,而这个引用类型也在EF上下文中,EF会把这种属性称为导航属性。...如果类型不一致EF则认为该类设置有误。如果没找到符合名称要求属性,EF会自己添加一个外键属性。 对于一对一,EF要求导航属性双方都应该具有外键配置。 一对多,EF要求多一方设置外键。...同时如果在一方这边设置了集合类型导航属性,那么EF会自动到目标类里寻找外键属性。 说完了一对一一对多,那么多对多呢? 如果没有声明的话, EF会生成一个中间表。 2....修改映射关系 EF允许开发人员指定自己映射规则或者单个类映射规则。EF 提供了几种方式来修改映射关系。 2.1 数据注解 EF允许开发人员通过使用Attribute标记,来约定映射关系。

2.6K21

Entity Framework Core 2.0 新特性

模型级过滤器将使用正确上下文实例值,即执行查询那个。   使用  IgnoreQueryFilters() 方法在一次查询禁用过滤器。...在以前ef版本,调用查询api时,可以通过自动编译并缓存编译结果达到一次计算多次调用,有效提高了ef性能,显示编译查询(Explicitly compiled queries)这种机制可以绕过缓存查找性能消耗...  EF支持映射数据库定义函数,可以在LINQ查询中使用。   ...一旦注册了方法,您就可以在查询任何地方使用它。  要注意几件事: 按照惯例,在生成SQL时,该方法名称用作函数名称(在本例是用户定义函数),但可以在方法注册期间重写名称schema。...目前只支持标量函数 EF Core迁移将不负责创建它,您必须在数据库创建映射函数 九.code first 实体配置   在EF6可以通过 EntityTypeConfiguraiton 封装特定实体类型配置代码

1.9K50

Entity Framework 4.1 Code-First 学习笔记

仅仅加载查询涉及实体,但是它支持两种特性来帮助你控制加载:贪婪加载延迟加载。   ...每种实现类型一张表 TPC: 有点像其他两个混合,对于每种实现类型映射到一张表,抽象类型像 TPH 一样展开到表。 这里我将讨论 TPT TPH,EF 好处是可以混合使用这些方式。...还有一个额外区分列,用来保存数据是属于哪一个类,当 EF 读取一行时候,区分列被 EF 用来知道应该创建实例类型,因为现在所有的类都被映射到了一张表。...另外一个 EF 映射管理方法是使用 Entity SQL,这种方式是 EF 将实体模型转换为物理模型,然后将Linq查询添加到物理模型,最后将物理模型转换为数据库存储查询。...,直接使用Sql进行查询优势在于,我们可以在 LINQ 之上进行查询,最终进行查询 SQL 是经过合并

1.6K10

在.NET Core中使用MongoDB明细教程(1):驱动基础及文档插入

快速高度可遍历。...这意味着MongoDB为用户提供了JSON文档易用性灵活性,以及轻量级二进制格式速度和丰富性。其实在我看来在很多场景MongoDb都可以取代关系型数据库。...这包包含了所有基本BSON类型其他一些用于使用BSON方法。 在这个包,我们有表示BSON类型类,以及如何在.NET类型BsonValue之间映射。...Mongo集合实例提供了一次插入单个文档一次插入多个文档方法。...,在下一篇文章,我将介绍如何对文档进行检索以及为此构建各种filter及linq查询技巧,有兴趣可以关注下我公众号“DotNetCore实战”第一时间进行更新!

2.8K30

老开源项目:.NET Core 3.1 + EF Core + LayUI 管理系统

学生信息查询案例,简单CURD操作——已完成。 框架封装介绍 1、简单三层架构,前后端分离模式,目前采用Layui前端组件MVC框架,后面可直接替换UI层VUE等前端框架。...2、集成了之前发布yrjw.ORM.Chimp包,该组件只是将EF Core使用仓储模式工作单元进行了封装,常用CURD方法API统一返回模型。...5、F5启动,就可以访问项目了,初始用户名:admin 密码:123456 笔记 下面总结下本人在学习.NET Core遇到一些问题,以及整个框架搭建思路使用开发教程。...先说说本次框架都有哪些改变,由之前.NET Core2.2直接升级采用最新版.NET Core3.1开发,ORM框架还是采用官方EF Core(为什么选他就不多纠结了,只为学习目的,后期也可能会换成其他轻量级框架如...FreeSQL),使用ORM工作单元封装也不需要自己单独弄了,我找了一个封装好组件包进行了升级改造,并支持了.NET Core3.1版,组件包开源地址yrjw.ORM.Chimp,使用是Code

29710

EF Core关系配置

foreach(Book b in books.Skip(3).Take(6)) { } 局限性: SQL 查询必须返回实体类型对应数据库表所有列; 结果集中列名必须与属性映射列名称匹配。...执行SaveChanges()等方法时,EF Core将会把存储快照值与实体的当前值进行比较。...未改变(Unchanged):DbContext正在跟踪此实体,该实体存在于数据库,其属性值从数据库读取到值一致,未发生改变。...) 更新到数据库; “已删除”实体,SaveChanges() 从数据库删除; 查看实体状态: 使用DbContextEntry()方法来获得实体在EF Core跟踪信息对象EntityEntry...全局查询筛选器 全局查询筛选器:EF Core 会自动将这个查询筛选器应用于涉及这个实体类型所有 LINQ 查询

7610

在.NET Core类库中使用EF Core迁移数据库到SQL Server

起初我是在ASP.NET CoreWeb项目中进行,但后来发现放在此处并不是很合理,一些关于数据库迁移,比如新增表,字段,修改字段类型等等,不应该最上层Web项目所关联,数据迁移文件放到这里也感觉有点多余...添加以下节点 重新执行上面的命令,如果出现了EF Core标志(一头蓄势待发野马)表示已经成功 b)、执行以下命令进行迁移 dotnet ef migrations add InitLightDB...,生成数据库表 dotnet ef database update 通过VSSQL Server资源管理器查看生成数据库结构,其中__EFMigrationsHistory为每次迁移记录表 b...a)、为了方便演示,其实上面在类库执行迁移时数据库连接字符串是写死,那么最好办法是应该去读取Web项目下已经配置好连接,这样就能保证上下一致性,不用再去为了EF迁移而单独维护一个多余数据库连接配置...下面是我调整之后重新生成表,是不是看出来上面的有什么不同,一图胜万语: c)、最后一步,自己动手试试看:创建一个SeedData迁移文件来添加数据库初始数据。

1.7K60

ASP.NET Core3.X 终端中间件转换为端点路由运行

引言 前几天.NET Core3.1发布,于是我把公司一个基础通用系统升级了,同时删除了几个基础模块当然这几个基础模块与.NET Core3.1无关,其中包括了支付模块,升级完后静文(同事)问我你把支付删除了啊...路由进阶 路由负责将请求 URI 映射到终结点并向这些终结点调度传入请求。 路由在应用定义,并在应用启动时进行配置。 路由可以选择从请求包含 URL 中提取值,然后这些值便可用于处理请求。...通过使用应用路由信息,路由还能生成映射到终结点 URL。 在ASP.NET Core 2.1更低版本,路由是通过实现将IRouter传入URL映射到处理程序接口来处理。...这些过滤器形成了另一条“管道”,让人联想到中间件管道,并且在某些情况下必须复制某些中间件行为。一个典型例子就是CORS政策。...它比以前版本功能强大得多. 在上一个示例,我们提供了一个显示名称(主要用于调试目的),但是我们可以附加其他信息,例如授权策略或CORS策略,其他中间件可以查询这些信息。

1.1K10

造轮子之多语言管理

多语言也是我们经常能用到东西,asp.net core默认支持了多语言,可以使用.resx资源文件来管理多语言配置。 但是在修改资源文件后,我们应用服务无法及时更新,属实麻烦一些。...我们可以通过扩展IStringLocalizer,实现我们想要多语言配置方式,比如Json配置,PO 文件配置,EF数据库配置等等。...这里我们选用数据库配置方式,直接查询数据库多语言配置进行转换。 创建表实体 多语言管理只需要两个表结构,一个是多语言国家表,一个是多语言资源表。两者是一对多关系。...方法,我们先通过缓存查询多语言内容,若查询不到再进数据库查询,减少数据库并发量。...可以看到成功获取英文中文多语言列表。 就这样我们完成多语言管理实现。

22860
领券