Fulent

Fulent是配置领域模型类的另一个方法,它比DataAnnotations提供更多的配置,提供以下三种方法映射

Mappings

To Database

Model-Wide Mapping

设置默认架构,设置经典约束

Entity Mapping

映射单个或多个表格或架构,映射复杂类型,继承策略

Property Mapping

属性、属性名、列类型、非空或非空列、列宽、列序列;并发列;外键列;配置关系

通常Fulent是在dbContext类或派生类中重写OnModelCreating方法定义,如下假设已经定义了Student领域类和Standard领域类

EntityTypeConfiguration Class

该类是一个非常重要的fluent API函数,提供了重要的方法去配置实体类和属性,通过Entity<TEntity>()方法调用

Method Name

Description

HasKey<TKey>

配置实体的主键约束

HasMany<TTargetEntity>

从这个实体开始配置一个多对多的关系

HasOptional<TTargetEntity>

从这个实体配置一个可选关系,没有被关系指定的一方将可以保存到数据库中,外键可以为空

HasRequired<TTargetEntity>

从这个实体配置一个必须关系,只有在确定关系的情况下实体类型实例才能被保存到数据库,否则外键列将会空

Ignore<TProperty>

从领域模型中排除一个属性,该属性将不映射到数据库中

Map

允许高级配置该模型的数据库模型

Property<T>

配置一个已经定义的类型的结构属性

ToTable

将领域类映射到数据库中的表名

1)      将类型指定为复杂类型

按约定,没有指定主键的类型将被视为复杂类型

Eg: modelBuilder.ComplexType<Details>();

2)      指定不将CLR实体类型映射到数据库中的表

简单说就是不将实体类型映射到数据库表中

Eg: modelBuilder.Ignore<OnlineCourse>();

Entity Mappings

可设置默认的架构

也可将实体配置到制定表

将一个实体类配置到多个表中

Property Mappings

Property用于为每个属于实体或复杂类型的属性配置特性。Property方法用于获取给定属性的配置对象。配置字符串属性是否支持Unicode内容,默认情况下,字符串为Unicode(SQLServer中的nvarchar),可以使用IsUnicode方法指定字符串应为varchar类型

Eg:modelBuilder.Entity<Department>().Property(t=>t.Name).IsUnicode(false);

先将领域类定义好

1)      配置主键约束和组合主键

2)      配置列名、类型和顺序,不仅仅可以通过方法,也可以通过HasColumnAnnotation配置

3)      配置空和非空列

4)      配置列宽

5)      配置并发列

转载于:https://www.cnblogs.com/Terrece/p/6892591.html

EntityFramework6.X 之 Fulent相关推荐

  1. 初识EntityFramework6【转】

    http://www.cnblogs.com/wujingtao/p/5401132.html 什么是EF? EF是一种ORM(Object-relational mapping)框架,它能把我们在编 ...

  2. [转]在EntityFramework6中执行SQL语句

    本文转自:http://www.cnblogs.com/wujingtao/p/5412329.html 在上一节中我介绍了如何使用EF6对数据库实现CRDU以及事务,我们没有写一句SQL就完成了所有 ...

  3. ef6 mysql code first_使用EntityFramework6连接MySql数据库(code first方式)

    demo托管地址:http://git.oschina.net/uustudy/ASP.NET-CodeFirst-MySQL-Demo.git 首先和DB First那篇文章一样,准备工具都要一样的 ...

  4. 使用EntityFramework6连接MySql数据库(db first方式)

    准备工具: VS2013.MySQL For VisualStudio 1.1.4.Connector/Net 6.8.3(百度网盘里) 程序包管理器执行命令: Install-Package Ent ...

  5. 使用简介EntityFramework6.0

    序言 在这一篇中,我们将演示EnitityFramework基本的建模[建模也是EntityFramework最核心的特性]范例,例如实体的分离和继承等.我们开始了演示如何创建一个简单的概念模型的例子 ...

  6. EntityFramework6.X 之 Operation

    上几个章节都是介绍EF6中Modeling内容,包括注解和Fluent,下面介绍EF6中的常用操作 Operation EF通过ObjectContext类定义从实体对象到数据库的映射,与ADO.NE ...

  7. FULENT软件测试工程师头像,关于ANSYS总部测试案例3之FLUENT软件中湍流管道压降的测试报告20141230.pdf...

    关于ANSYS总部测试案例3之FLUENT软件中湍流管道压降的测试报告20141230.pdf 关于FLUENT 软件中湍流管道压降的测试报告 (介质为空气) 4 1.测试模型 (管道长2m,半径0. ...

  8. 在EntityFramework6中管理DbContext的正确方式——3环境上下文DbContext vs 显式DbContext vs 注入DbContext(外文翻译)...

    (译者注:使用EF开发应用程序的一个难点就在于对其DbContext的生命周期管理,你的管理策略是否能很好的支持上层服务 使用独立事务,使用嵌套事务,并行执行,异步执行等需求? Mehdi El Gu ...

  9. Entity Freamwork 6连接PostgreSql数据库

    原文 Entity Freamwork 6连接PostgreSql数据库 开发环境 VS 2015  Update 1   Postgre Sql 9.4 使用过程 1.使用Nuget在项目中添加对E ...

最新文章

  1. php v5.,PHP V5.3 中的新特性,第 5 部分- 从 PHP V5.2 升级到 PHP V5.3
  2. cxf生成客户端代码
  3. 中国文学发展史思维导图
  4. 关于c++中map插入元素的问题
  5. java newfile() bug_java初学者小白?遇到BUG就慌了?有关java异常的十大问题详解!...
  6. malloc calloc realloc
  7. 《C语言及程序设计》实践参考——输出小星星(全解)
  8. spring in action 4 第6章 视图分发
  9. Linux常用命令总结之(七)mkdir
  10. 定位到文件目录并选定文件
  11. PDF区域文本提取工具
  12. TripAdvisor猫途鹰翻译志愿者线上任务评测
  13. godaddy无法修改域名服务器,GoDaddy域名修改DNS设置方法
  14. 动画 | 什么是红黑树?(与2-3-4树等价)
  15. java isbn_java – 将ISBN10转换为ISBN13
  16. HDU1922 POJ3004 Subway planning “神题”留名
  17. 3秒钟解决windows字符间距变大,输入字母间距变大问题
  18. 正则表达式校验正数/负数
  19. YOLOV5训练代码train.py注释与解析
  20. gmt时间转化函数c语言,时区缩写 UTC, CST, GMT, CEST 以及转换(示例代码)

热门文章

  1. IntelliJ IDEA中无法加载jar包导致出现“cannot resolve symbol...”问题的解决
  2. 服务提供者和服务消费者
  3. lsof -i:port 的作用
  4. JAVA 获取格林威治时间(GMT)
  5. 自定义权限 android,如何在Android中使用自定义权限?
  6. 消防信号二总线有没电压_春晓161#地块人防工程消防电源监控系统的设计与应用...
  7. c# 蓝牙虚拟串口_蓝牙模块——基础知识介绍
  8. src与href属性的区别
  9. lynda ux_如何进入UX领域
  10. 没想到你是这样的npm install