FluentAPI深入】的更多相关文章

FluentApi总结 1.FluentApi简介 EF中的FluentApi作用是通过配置领域类来覆盖默认的约定.在EF中,我们通过DbModelBuilder类来使用FluentApi,它的功能比数据注释属性更强大. 使用FluentApi时,我们在context类的OnModelCreating()方法中重写配置项,一个栗子: public class SchoolContext: DbContext { public DbSet<Student> Students { get; set…
FluentApi配置存储过程 1.EF自动生成存储过程 EF6的CodeFirst开发模式支持给实体的CUD操作配置存储过程,当我们执行SaveChanges()方法时EF不在生成INSERT,UPDATE,DELETE命令,而是生成CUD操作的存储过程,我们也可以给实体CUD操作指定自定义的存储过程. 一个栗子: 我们给学生实体的CUD操作设置存储过程,Student实体如下: class Student { public int StudentId { get; set; } public…
我们已经知道了在OnModelCreating()方法中可以通过FluentApi对所有的实体类进行配置,然而当实体类很多时,我们把所有的配置都放在OnModelCreating()方法中很难维护.EF6允许我们给每一个实体添加一个单独的配置类,通过这个配置类来对相应的实体进行配置. 以配置Student实体类为例,我们在OnModelCreating()方法中配置Student实体,代码如下: public class SchoolDBContext: DbContext { public S…
一.FluentAPI: 1.基本配置: namespace ConsoleApp14.ModelConfig { public class PersonConfig: EntityTypeConfiguration<Person> { //继承自EntityTypeConfiguration,并将Person传进来 public PersonConfig() { this.ToTable("T_Persons"); } } } public class TestDbCon…
都有哪几种关系? 1vs多,多vs多 1. 概念or关系映射相关方法: 1) 基本套路:this.Has***(o=>o.AAA).With***() 当前这个表和AAA属性的表关系是Has定义,With定义AAA表和这个表的关系 BBBConfig{ //这是1vs多的关系,1个AAA钟包含多个BBB public BBBConfig(){ //这个BBB有多少个A属性:从后读A钟有多少B this.Has***(o=>o.A).With***(); } } class AAA{ publi…
基本 EF 配置只要配置实体类和表.字段的对应关系.表间关联关系即可. 如何利用 EF的高级配置,达到更多效果:如果数据错误(比如字段不能为空.字符串超长等),会在 EF 层就会报错,而不会被提交给数据库服务器再报错:如果使用自动生成数据库,也能帮助 EF 生成更完美的数据库表.这样的配置通过FluentAPI可以完成. 尽 量 用 约 定 , EF 配 置 越 少 越 好 . 配置属性Length: Length用来描述数组的长度,当前包括string和Byte数组. 默认约定:Code Fi…
采用的是net Core 3.1框架下的 的WebAPI项目. 1.  创建ASP.NET Core Web项目  2. 添加NuGet引用包,包如下 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Design Microsoft.EntityFrameworkCore.Tool Pomelo.EntityFrameworkCore.MySql 3. 创建继承自DbContext 的DataContext文件 public…
一.Entity Framework的入门  我这里采用的方式是数据库自己建立  然后模型类自己建立 数据库上下文类自己建立的方式 目的在于弄懂原理 其他的数据库优先等方式这里就不写了  教程有很多. 首先创建控制台应用程序,接下来选择工具 NuGet包管理器,程序包管理控制台,默认项目选择自己要使用的项目,输入命令Install-Package EntityFramework 安装EntityFramework . a.安装成功后,在appconfig中添加数据库连接字符串: <connect…
在 Newbe.ObjectVistor 0.3 版本中我们非常兴奋的引入了一个紧张刺激的新特性:使用状态图来生成任意给定的 FluentAPI 设计. 开篇摘要 在非常多优秀的框架中都存在一部分 FluentAPI 的设计.这种 API 设计更加符合人类自言语言描述.使得代码更加具备可读性. 在 Newbe.ObjectVistor 0.3 版本中,我们设计引入了一种使用状态图来自动生成 FluentAPI 代码的机制.极大了简化了 FluentAPI 实现所需要的脑力劳动. 本篇我们将通过一…
提示很明显,不可为空的外键为空了,但是 问题是,我只是初始化 关系映射而已:见代码 public ColumnsCategoryMapConfiguration() { ToTable("ColumnsCategory").HasKey(x => x.Id); Property(x => x.Id) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None) .IsRequired() .IsConcurrencyTo…