code First 三 Fluent API
Entity Framework Fluent API用于配置域类以覆盖约定。
在实体框架6中,DbModelBuilder类充当Fluent API,我们可以使用它来配置许多不同的东西。它提供了比数据注解属性更多的配置选项。
写流利API配置,覆盖OnModelCreating的方法DBContext在一个上下文类。






使用Fluent API的实体映射:




使用Fluent API的属性映射:



配置列名称,类型和顺序:


为属性配置Null或NotNull列:

配置列大小:

配置并发列:


配置一对 零/一 关系:
当我们使用默认主键的时候:


当我们需要配置主键和外键的时候:



使用Fluent API配置一对一关系:
数据库中我们看不到外键,但是确实是存在一对一的关系



在EF 6中配置一对多关系
公约1,导航属性来约定:


注意引用属性是可以为空的,所以它Grade_GradeId在Students表中创建一个可为空的外键列。您可以Fluent API 配置可以为空的外键。
约定2,集合导航属性

公约3, 公约1和2的结合
公约4 两端完全定义的关系将创建一对多的关系



使用Fluent API配置一对多关系
大多数情况下,您不需要在实体框架中配置一对多关系,因为一对多关系约定涵盖所有组合。但是,您可以使用Fluent API来配置关系以使其可维护。



.HasRequired<grade>(s => s.CurrentGrade)指定该Student实体具有所需的CurrentGrade属性。这将在DB中创建NotNull外键列。
.WithMany(g => g.Students) 指定Grade实体类包含许多Student实体。
.HasForeignKey<int>(s => s.CurrentGradeId); 指定Student实体中的外键属性。

使用Fluent API配置NotNull ForeignKey:

使用Fluent API配置级联删除:

在Code-First中配置多对多关系:
DataAnnotation中的多对多




使用Fluent API配置多对多关系:


code First 三 Fluent API的更多相关文章
- Code First 关系 Fluent API
通过实体框架 Code First,可以使用您自己的域类表示 EF 执行查询.更改跟踪和更新函数所依赖的模型.Code First 利用称为“约定先于配置”的编程模式.这意味着 Code First ...
- Code First约定-Fluent API配置
转自:http://blog.163.com/m13864039250_1/blog/static/2138652482015283397609/ 用Fluent API 配置/映射属性和类型 简介 ...
- Code First:Fluent API
DbContext类有一个OnModelCreating方法,可以在这里配置模型,该方法接收一个类型为DbModelBuilder的建造者,本文介绍的为Data Anotation的等价方法,这些代码 ...
- 1.【使用EF Code-First方式和Fluent API来探讨EF中的关系】
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/relationship-in-entity-framework-using-code-firs ...
- 使用Fluent API 配置/映射属性和类型
Code First约定-Fluent API配置 使用Fluent API 配置/映射属性和类型 简介 通常通过重写派生DbContext 上的OnModelCreating 方法来访问Code F ...
- Entity Framework Code First (五)Fluent API - 配置关系
上一篇文章我们讲解了如何用 Fluent API 来配置/映射属性和类型,本文将把重点放在其是如何配置关系的. 文中所使用代码如下 public class Student { public int ...
- Entity Framework Code First (五)Fluent API - 配置关系 转载 https://www.cnblogs.com/panchunting/p/entity-framework-code-first-fluent-api-configuring-relationships.html
上一篇文章我们讲解了如何用 Fluent API 来配置/映射属性和类型,本文将把重点放在其是如何配置关系的. 文中所使用代码如下 public class Student { public int ...
- Entity Framework Code First 中使用 Fluent API 笔记。
在做MVC+EF CodeFirst 的Demo时,碰到的问题, 在组册用户时,要让用户输入确认密码,但是数据库中又不需要保存这个字段,解决方案很多了,这里我列出通过EF Code First的解决方 ...
- Entity Framework 实体框架的形成之旅--Code First模式中使用 Fluent API 配置(6)
在前面的随笔<Entity Framework 实体框架的形成之旅--Code First的框架设计(5)>里介绍了基于Code First模式的实体框架的经验,这种方式自动处理出来的模式 ...
随机推荐
- IDEA 中,编译后不拷贝 mybatis 配置的 mapper 的 xml 文件
在maven项目的pom.xml配置文件里添加 <build> <resources> <resource> <directory>src/main/j ...
- vim 配置文件——部分配置
//vim 相关 set nu set showmatch set autoindent set smartindent set ruler set incsearch set tabstop=4 s ...
- bnu 28890 &zoj 3689——Digging——————【要求物品次序的01背包】
Digging Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on ZJU. Original ID: 36 ...
- 抽象工厂模式&简单工厂模式
抽象工厂模式 优点: 如IFactory factory=new AccessFactory(),在一个应用中只需要初始化一次,这就使得改变应用的时候变得非常容易:其次它让具体的创建实例过程与客户端分 ...
- 通过学生-课程关系表,熟悉hive语句
通过学生-课程关系表,熟悉hive语句 1.在hive中创建以下三个表. create table student(Sno int,Sname string,Sex string,Sage int, ...
- FTP FileZilla Server 本地加密C# 实现
最近公司要做一个资料管理模块,因系统是C/S架构,原来小文件都是直接使用7Z压缩后保存到SQL Server数据库 而资料管理模块也就是文件上传,下载加权限管理,考虑文件较多,还可能比较大,所以打算在 ...
- sort遇到的问题
var arr = [2,10,6,9,7,8]; var arr1 = arr.sort(); var arr2 = arr.sort(function(a,b){ if (a>b){ ret ...
- Multidex (方法数超过限制的处理)
报错 : Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536 ...
- 保存及读取keras模型参数
转自:http://blog.csdn.net/u010159842/article/details/54407745,感谢分享~ 你可以使用model.save(filepath)将Keras模型和 ...
- 真的有用吗?(GitHub)
为什么要新建一个GitHub账号 一个程序员不知道GitHub,那我就笑笑,呵呵哒.什么是GitHub呢? 就我知道的git,谈一下.Git是一个版本控制软件,这个软件最初是Linux之父林纳斯. ...